quote
$(Expr(:toplevel, quote
    begin
        gboxed_types = Any[]
    end
    begin
        struct _GdkPixbufModulePattern
            prefix::Cstring
            mask::Cstring
            relevance::Int32
        end
        mutable struct GdkPixbufModulePattern
            handle::Ptr{_GdkPixbufModulePattern}
        end
        unsafe_convert(::Type{Ptr{_GdkPixbufModulePattern}}, box::GdkPixbufModulePattern) = begin
                convert(Ptr{_GdkPixbufModulePattern}, box.handle)
            end
    end
    begin
        struct _GdkPixbufFormat
            name::Cstring
            signature::Ptr{_GdkPixbufModulePattern}
            domain::Cstring
            description::Cstring
            mime_types::Ptr{Cstring}
            extensions::Ptr{Cstring}
            flags::UInt32
            disabled::Cint
            license::Cstring
        end
        mutable struct GdkPixbufFormat <: GBoxed
            handle::Ptr{_GdkPixbufFormat}
            begin
                (GLib.g_type(::Type{T}) where T <: GdkPixbufFormat) = begin
                        ccall(("gdk_pixbuf_format_get_type", libgdkpixbuf), GType, ())
                    end
                function GdkPixbufFormat(ref::Ptr{T}, own::Bool = false) where T <: GBoxed
                    x = new(ref)
                    if own
                        finalizer(x) do x
                            GLib.delboxed(x)
                        end
                    end
                    x
                end
                push!(gboxed_types, GdkPixbufFormat)
            end
        end
        unsafe_convert(::Type{Ptr{_GdkPixbufFormat}}, box::GdkPixbufFormat) = begin
                convert(Ptr{_GdkPixbufFormat}, box.handle)
            end
    end
    begin
        gboxed_cache_init() = begin
                append!(GLib.gboxed_types, gboxed_types)
            end
    end
    @doc "A `GdkPixbufFormat` contains information about the image format accepted\nby a module.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gdk-pixbuf/struct.PixbufFormat.html)." GdkPixbufFormat
    begin
        gtype_wrapper_cache = Dict{Symbol, Type}()
    end
    begin
        abstract type GdkPixbuf <: GObject end
        mutable struct GdkPixbufLeaf <: GdkPixbuf
            handle::Ptr{GObject}
            function GdkPixbufLeaf(handle::Ptr{GObject}, owns = false)
                if handle == C_NULL
                    error("Cannot construct GdkPixbufLeaf with a NULL pointer")
                end
                GLib.gobject_maybe_sink(handle, owns)
                return gobject_ref(new(handle))
            end
        end
        local kwargs
        function GdkPixbufLeaf(args...; kwargs...)
            w = GdkPixbuf(args...)
            setproperties!(w; kwargs...)
            w
        end
        gtype_wrapper_cache[:GdkPixbuf] = GdkPixbufLeaf
        function GdkPixbuf(args...; kwargs...)
            GdkPixbufLeaf(args...; kwargs...)
        end
    end
    begin
        abstract type GdkPixbufAnimation <: GObject end
        mutable struct GdkPixbufAnimationLeaf <: GdkPixbufAnimation
            handle::Ptr{GObject}
            function GdkPixbufAnimationLeaf(handle::Ptr{GObject}, owns = false)
                if handle == C_NULL
                    error("Cannot construct GdkPixbufAnimationLeaf with a NULL pointer")
                end
                GLib.gobject_maybe_sink(handle, owns)
                return gobject_ref(new(handle))
            end
        end
        local kwargs
        function GdkPixbufAnimationLeaf(args...; kwargs...)
            w = GdkPixbufAnimation(args...)
            setproperties!(w; kwargs...)
            w
        end
        gtype_wrapper_cache[:GdkPixbufAnimation] = GdkPixbufAnimationLeaf
        function GdkPixbufAnimation(args...; kwargs...)
            GdkPixbufAnimationLeaf(args...; kwargs...)
        end
    end
    begin
        abstract type GdkPixbufAnimationIter <: GObject end
        mutable struct GdkPixbufAnimationIterLeaf <: GdkPixbufAnimationIter
            handle::Ptr{GObject}
            function GdkPixbufAnimationIterLeaf(handle::Ptr{GObject}, owns = false)
                if handle == C_NULL
                    error("Cannot construct GdkPixbufAnimationIterLeaf with a NULL pointer")
                end
                GLib.gobject_maybe_sink(handle, owns)
                return gobject_ref(new(handle))
            end
        end
        local kwargs
        function GdkPixbufAnimationIterLeaf(args...; kwargs...)
            w = GdkPixbufAnimationIter(args...)
            setproperties!(w; kwargs...)
            w
        end
        gtype_wrapper_cache[:GdkPixbufAnimationIter] = GdkPixbufAnimationIterLeaf
        function GdkPixbufAnimationIter(args...; kwargs...)
            GdkPixbufAnimationIterLeaf(args...; kwargs...)
        end
    end
    begin
        abstract type GdkPixbufLoader <: GObject end
        mutable struct GdkPixbufLoaderLeaf <: GdkPixbufLoader
            handle::Ptr{GObject}
            function GdkPixbufLoaderLeaf(handle::Ptr{GObject}, owns = false)
                if handle == C_NULL
                    error("Cannot construct GdkPixbufLoaderLeaf with a NULL pointer")
                end
                GLib.gobject_maybe_sink(handle, owns)
                return gobject_ref(new(handle))
            end
        end
        local kwargs
        function GdkPixbufLoaderLeaf(args...; kwargs...)
            w = GdkPixbufLoader(args...)
            setproperties!(w; kwargs...)
            w
        end
        gtype_wrapper_cache[:GdkPixbufLoader] = GdkPixbufLoaderLeaf
        function GdkPixbufLoader(args...; kwargs...)
            GdkPixbufLoaderLeaf(args...; kwargs...)
        end
    end
    begin
        abstract type GdkPixbufNonAnim <: GdkPixbufAnimation end
        mutable struct GdkPixbufNonAnimLeaf <: GdkPixbufNonAnim
            handle::Ptr{GObject}
            function GdkPixbufNonAnimLeaf(handle::Ptr{GObject}, owns = false)
                if handle == C_NULL
                    error("Cannot construct GdkPixbufNonAnimLeaf with a NULL pointer")
                end
                GLib.gobject_maybe_sink(handle, owns)
                return gobject_ref(new(handle))
            end
        end
        local kwargs
        function GdkPixbufNonAnimLeaf(args...; kwargs...)
            w = GdkPixbufNonAnim(args...)
            setproperties!(w; kwargs...)
            w
        end
        gtype_wrapper_cache[:GdkPixbufNonAnim] = GdkPixbufNonAnimLeaf
        function GdkPixbufNonAnim(args...; kwargs...)
            GdkPixbufNonAnimLeaf(args...; kwargs...)
        end
    end
    begin
        abstract type GdkPixbufSimpleAnim <: GdkPixbufAnimation end
        mutable struct GdkPixbufSimpleAnimLeaf <: GdkPixbufSimpleAnim
            handle::Ptr{GObject}
            function GdkPixbufSimpleAnimLeaf(handle::Ptr{GObject}, owns = false)
                if handle == C_NULL
                    error("Cannot construct GdkPixbufSimpleAnimLeaf with a NULL pointer")
                end
                GLib.gobject_maybe_sink(handle, owns)
                return gobject_ref(new(handle))
            end
        end
        local kwargs
        function GdkPixbufSimpleAnimLeaf(args...; kwargs...)
            w = GdkPixbufSimpleAnim(args...)
            setproperties!(w; kwargs...)
            w
        end
        gtype_wrapper_cache[:GdkPixbufSimpleAnim] = GdkPixbufSimpleAnimLeaf
        function GdkPixbufSimpleAnim(args...; kwargs...)
            GdkPixbufSimpleAnimLeaf(args...; kwargs...)
        end
    end
    begin
        abstract type GdkPixbufSimpleAnimIter <: GdkPixbufAnimationIter end
        mutable struct GdkPixbufSimpleAnimIterLeaf <: GdkPixbufSimpleAnimIter
            handle::Ptr{GObject}
            function GdkPixbufSimpleAnimIterLeaf(handle::Ptr{GObject}, owns = false)
                if handle == C_NULL
                    error("Cannot construct GdkPixbufSimpleAnimIterLeaf with a NULL pointer")
                end
                GLib.gobject_maybe_sink(handle, owns)
                return gobject_ref(new(handle))
            end
        end
        local kwargs
        function GdkPixbufSimpleAnimIterLeaf(args...; kwargs...)
            w = GdkPixbufSimpleAnimIter(args...)
            setproperties!(w; kwargs...)
            w
        end
        gtype_wrapper_cache[:GdkPixbufSimpleAnimIter] = GdkPixbufSimpleAnimIterLeaf
        function GdkPixbufSimpleAnimIter(args...; kwargs...)
            GdkPixbufSimpleAnimIterLeaf(args...; kwargs...)
        end
    end
    begin
        gtype_wrapper_cache_init() = begin
                merge!(GLib.gtype_wrappers, gtype_wrapper_cache)
            end
    end
    @doc "A pixel buffer.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gdk-pixbuf/class.Pixbuf.html)." GdkPixbuf
    @doc "An opaque object representing an animation.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gdk-pixbuf/class.PixbufAnimation.html)." GdkPixbufAnimation
    @doc "An opaque object representing an iterator which points to a\ncertain position in an animation.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gdk-pixbuf/class.PixbufAnimationIter.html)." GdkPixbufAnimationIter
    @doc "Incremental image loader.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gdk-pixbuf/class.PixbufLoader.html)." GdkPixbufLoader
    @doc "An opaque struct representing a simple animation.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gdk-pixbuf/class.PixbufSimpleAnim.html)." GdkPixbufSimpleAnim
    export GdkPixbufModulePattern, _GdkPixbufModulePattern, GdkPixbufFormat, _GdkPixbufFormat, GdkPixbuf, GdkPixbufAnimation, GdkPixbufAnimationIter, GdkPixbufLoader, GdkPixbufNonAnim, GdkPixbufSimpleAnim, GdkPixbufSimpleAnimIter
end))
end
