From b01276a5aeede5572269a5ddf79bac53fd6f8d3e Mon Sep 17 00:00:00 2001 From: Jared Wahlstrand Date: Fri, 25 Aug 2023 22:10:25 -0400 Subject: [PATCH] type stability fixes, hopfully fix tests --- GI/README.md | 6 +- GI/src/giimport.jl | 2 +- README.md | 6 +- examples/listbox.jl | 1 + gen/gen_gsk.jl | 2 +- src/gen/gdk4_methods | 10 +-- src/gen/gdkpixbuf_methods | 16 ++-- src/gen/gio_methods | 162 +++++++++++++++++++------------------- src/gen/gsk4_methods | 10 +-- src/gen/gsk4_structs | 134 ++++++++++++++++++++++++++++++- src/gen/pango_methods | 8 +- test/gui/listviews.jl | 8 +- test/gui/misc.jl | 2 +- 13 files changed, 252 insertions(+), 115 deletions(-) diff --git a/GI/README.md b/GI/README.md index 7964d929..2e518285 100644 --- a/GI/README.md +++ b/GI/README.md @@ -11,11 +11,11 @@ In function definitions, it uses [annotations](https://gi.readthedocs.io/en/late should be freed, whether pointer arguments can be optionally NULL, whether list outputs are NULL-terminated, which argument corresponds to the length of array inputs, which arguments are outputs and which are inputs, and more. -The primary advantage over writing `ccall`'s (as is done in Gtk.jl) is that it can rapidly cover an entire library, saving a lot of tedious work. +The primary advantage over manually writing `ccall`'s (as is done in Gtk.jl) is that it can rapidly cover an entire library, saving a lot of tedious work. As new functionality is added to libraries, you just have to run GI.jl again and new code is generated. Disadvantages include: the current implementation only extracts GI information on Linux, leading to potential bugs on other platforms, and annotations are inaccurate in some libraries. -This package is currently unregistered, and it only works on Linux because it uses gobject_introspection_jll, which is currently only available for Linux. However, most generated code works on other platforms. +This package is currently unregistered, and it only works on Linux because it uses [gobject_introspection_jll](https://github.com/JuliaPackaging/Yggdrasil/tree/master/G/gobject_introspection), which is currently only available for Linux. However, most generated code works on other platforms. ## Status @@ -81,4 +81,4 @@ inputs can optionally be NULL, the Julia methods accept nothing as the argument. When outputs are NULL, the Julia methods output nothing. Object and struct methods are typically exported in a file "lib_methods" in a "src/gen" directory and packages typically include them in a "G_" submodule. -Functions not associated with objects or structs are typically exported in a file "lib_functions". \ No newline at end of file +Functions not associated with objects or structs are typically exported in a file "lib_functions". diff --git a/GI/src/giimport.jl b/GI/src/giimport.jl index 414fd878..99575e09 100644 --- a/GI/src/giimport.jl +++ b/GI/src/giimport.jl @@ -779,7 +779,7 @@ function convert_from_c(name::Symbol, arginfo::ArgInfo, typeinfo::TypeDesc{T}, i object = get_container(arginfo) if may_be_null(arginfo) :(convert_if_not_null($(typeinfo.jtype), $name, $owns)) - elseif isconstructor && !get_abstract(object) && !owns + elseif isconstructor && !get_abstract(object) # For a constructor, we know this is a never-before-seen object, so use the known concrete type to allow type inference # Many of these have an abstract type as the return type in GI, but we need the # concrete one. Since this is a constructor we can look up the name. diff --git a/README.md b/README.md index 351bca40..a80f9b64 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,10 @@ Most of the code for GLib support (`GType`, `GValue`, `GObject`, etc.) was copie Documentation for the master branch version of this package can be found [here](https://juliagtk.github.io/Gtk4.jl/dev/). Complete GTK documentation is available at [https://www.gtk.org/docs](https://www.gtk.org/docs). ## Current status -Based on limited data, Gtk4.jl works about as well as Gtk.jl. Notably, it does not cause REPL lag on Windows the way that Gtk.jl does. - For auto-generated code, Gtk4.jl relies on GObject introspection data generated on a Linux x86_64 machine, which may result in code that crashes on 32 bit computers. This seems to affect mostly obscure parts of GLib that are unlikely to be useful to Julia users, but 32 bit users should be aware of this. +Note that this package uses binaries for the GTK library and its dependencies that are built and packaged using [BinaryBuilder.jl](https://github.com/JuliaPackaging/BinaryBuilder.jl). On Linux it does **not** use the binaries that are packaged with your distribution. The build scripts for these binaries, including the library versions currently being used, can be found by perusing [Yggdrasil.jl](https://github.com/JuliaPackaging/Yggdrasil.jl). + ## Enabling GTK4's EGL backend (Linux) On Wayland, a Cairo-based fallback backend will be used unless you tell `libglvnd_jll` where to find libEGL. This can be done by setting the environment variable __EGL_VENDOR_LIBRARY_DIRS. See [here](https://gitlab.freedesktop.org/glvnd/libglvnd/-/blob/master/src/EGL/icd_enumeration.md) for details. @@ -28,4 +28,4 @@ using Gtk4 Gtk4.set_EGL_vendorlib_dirs("/usr/share/glvnd/egl_vendor.d") [ Info: Setting will take effect after restarting Julia. ``` -where "/usr/share/glvnd/egl_vendor.d" is a typical location for Mesa's libEGL (this should be modified if it's somewhere else on your distribution). Other vendor-provided libraries may be in other locations, and a colon-separated list of directories can be used for that situation. **Note that this has only been tested for the Mesa-provided libEGL on Fedora and Ubuntu.** \ No newline at end of file +where "/usr/share/glvnd/egl_vendor.d" is a typical location for Mesa's libEGL (this should be modified if it's somewhere else on your distribution). Other vendor-provided libraries may be in other locations, and a colon-separated list of directories can be used for that situation. **Note that this has only been tested for the Mesa-provided libEGL on Fedora and Ubuntu.** diff --git a/examples/listbox.jl b/examples/listbox.jl index c68f2610..5a850107 100644 --- a/examples/listbox.jl +++ b/examples/listbox.jl @@ -26,3 +26,4 @@ end sw[] = listBox listBox.vexpand = true + diff --git a/gen/gen_gsk.jl b/gen/gen_gsk.jl index 5a408dea..9246ed37 100644 --- a/gen/gen_gsk.jl +++ b/gen/gen_gsk.jl @@ -35,7 +35,7 @@ GI.append_struc_docs!(exprs, "gsk4", d, c, ns) ## objects -c = GI.all_objects!(exprs,exports,ns,,output_cache_define=false,output_cache_init=false) +c = GI.all_objects!(exprs,exports,ns,output_cache_define=false,output_cache_init=false) GI.append_object_docs!(exprs, "gsk4", d, c, ns) GI.all_interfaces!(exprs,exports,ns) diff --git a/src/gen/gdk4_methods b/src/gen/gdk4_methods index 8e1e2c16..a86ebf30 100644 --- a/src/gen/gdk4_methods +++ b/src/gen/gdk4_methods @@ -502,19 +502,19 @@ $(Expr(:toplevel, quote end function ContentProvider_new_for_bytes(_mime_type::Union{AbstractString, Symbol}, _bytes::GBytes) ret = ccall(("gdk_content_provider_new_for_bytes", libgtk4), Ptr{GObject}, (Cstring, Ptr{GBytes}), _mime_type, _bytes) - ret2 = convert(GdkContentProvider, ret, true) + ret2 = GdkContentProviderLeaf(ret, true) ret2 end function ContentProvider_new_for_value(_value::Union{GValue, Ref{_GValue}}) ret = ccall(("gdk_content_provider_new_for_value", libgtk4), Ptr{GObject}, (Ptr{_GValue},), _value) - ret2 = convert(GdkContentProvider, ret, true) + ret2 = GdkContentProviderLeaf(ret, true) ret2 end function ContentProvider_new_union(_providers) _providers_arr = convert(Vector{Ptr{GObject}}, _providers) _n_providers = length(_providers) ret = ccall(("gdk_content_provider_new_union", libgtk4), Ptr{GObject}, (Ptr{Ptr{GObject}}, UInt64), _providers_arr, _n_providers) - ret2 = convert(GdkContentProvider, ret, true) + ret2 = GdkContentProviderLeaf(ret, true) ret2 end function content_changed(instance::GdkContentProvider) @@ -629,7 +629,7 @@ $(Expr(:toplevel, quote function Cursor_new_from_texture(_texture::GdkTexture, _hotspot_x::Integer, _hotspot_y::Integer, _fallback::Maybe(GdkCursor)) _fallback_maybe = nothing_to_null(_fallback) ret = ccall(("gdk_cursor_new_from_texture", libgtk4), Ptr{GObject}, (Ptr{GObject}, Int32, Int32, Ptr{GObject}), _texture, _hotspot_x, _hotspot_y, _fallback_maybe) - ret2 = convert(GdkCursor, ret, true) + ret2 = GdkCursorLeaf(ret, true) ret2 end function get_fallback(instance::GdkCursor) @@ -1449,7 +1449,7 @@ $(Expr(:toplevel, quote end function MemoryTexture_new(_width::Integer, _height::Integer, _format, _bytes::GBytes, _stride::Integer) ret = ccall(("gdk_memory_texture_new", libgtk4), Ptr{GObject}, (Int32, Int32, UInt32, Ptr{GBytes}, UInt64), _width, _height, _format, _bytes, _stride) - ret2 = convert(GdkMemoryTexture, ret, true) + ret2 = GdkMemoryTextureLeaf(ret, true) ret2 end function get_connector(instance::GdkMonitor) diff --git a/src/gen/gdkpixbuf_methods b/src/gen/gdkpixbuf_methods index 65e7d7d2..14aa3d0f 100644 --- a/src/gen/gdkpixbuf_methods +++ b/src/gen/gdkpixbuf_methods @@ -75,7 +75,7 @@ $(Expr(:toplevel, quote end function Pixbuf_new_from_bytes(_data::GBytes, _colorspace, _has_alpha::Bool, _bits_per_sample::Integer, _width::Integer, _height::Integer, _rowstride::Integer) ret = ccall(("gdk_pixbuf_new_from_bytes", libgdkpixbuf), Ptr{GObject}, (Ptr{GBytes}, UInt32, Cint, Int32, Int32, Int32, Int32), _data, _colorspace, _has_alpha, _bits_per_sample, _width, _height, _rowstride) - ret2 = convert(GdkPixbuf, ret, true) + ret2 = GdkPixbufLeaf(ret, true) ret2 end function Pixbuf_new_from_data(_data, _colorspace, _has_alpha::Bool, _bits_per_sample::Integer, _width::Integer, _height::Integer, _rowstride::Integer, _destroy_fn::Maybe(Function)) @@ -88,7 +88,7 @@ $(Expr(:toplevel, quote _destroy_fn_closure = GLib.gc_ref(_destroy_fn) end ret = ccall(("gdk_pixbuf_new_from_data", libgdkpixbuf), Ptr{GObject}, (Ptr{UInt8}, UInt32, Cint, Int32, Int32, Int32, Int32, Ptr{Cvoid}, Ptr{Nothing}), _data_arr, _colorspace, _has_alpha, _bits_per_sample, _width, _height, _rowstride, _destroy_fn_cfunc, _destroy_fn_closure) - ret2 = convert(GdkPixbuf, ret, true) + ret2 = GdkPixbufLeaf(ret, true) ret2 end function Pixbuf_new_from_file(_filename::Union{AbstractString, Symbol}) @@ -151,7 +151,7 @@ $(Expr(:toplevel, quote end function Pixbuf_new_from_xpm_data(_data) ret = ccall(("gdk_pixbuf_new_from_xpm_data", libgdkpixbuf), Ptr{GObject}, (Ptr{Cstring},), _data) - ret2 = convert(GdkPixbuf, ret, true) + ret2 = GdkPixbufLeaf(ret, true) ret2 end function calculate_rowstride(_colorspace, _has_alpha::Bool, _bits_per_sample::Integer, _width::Integer, _height::Integer) @@ -479,21 +479,21 @@ $(Expr(:toplevel, quote end function PixbufLoader_new() ret = ccall(("gdk_pixbuf_loader_new", libgdkpixbuf), Ptr{GObject}, ()) - ret2 = convert(GdkPixbufLoader, ret, true) + ret2 = GdkPixbufLoaderLeaf(ret, true) ret2 end function PixbufLoader_new_with_mime_type(_mime_type::Union{AbstractString, Symbol}) err = err_buf() ret = ccall(("gdk_pixbuf_loader_new_with_mime_type", libgdkpixbuf), Ptr{GObject}, (Cstring, Ptr{Ptr{GError}}), _mime_type, err) check_err(err) - ret2 = convert(GdkPixbufLoader, ret, true) + ret2 = GdkPixbufLoaderLeaf(ret, true) ret2 end function PixbufLoader_new_with_type(_image_type::Union{AbstractString, Symbol}) err = err_buf() ret = ccall(("gdk_pixbuf_loader_new_with_type", libgdkpixbuf), Ptr{GObject}, (Cstring, Ptr{Ptr{GError}}), _image_type, err) check_err(err) - ret2 = convert(GdkPixbufLoader, ret, true) + ret2 = GdkPixbufLoaderLeaf(ret, true) ret2 end function close(instance::GdkPixbufLoader) @@ -540,12 +540,12 @@ $(Expr(:toplevel, quote end function PixbufNonAnim_new(_pixbuf::GdkPixbuf) ret = ccall(("gdk_pixbuf_non_anim_new", libgdkpixbuf), Ptr{GObject}, (Ptr{GObject},), _pixbuf) - ret2 = convert(GdkPixbufAnimation, ret, true) + ret2 = GdkPixbufNonAnimLeaf(ret, true) ret2 end function PixbufSimpleAnim_new(_width::Integer, _height::Integer, _rate::Real) ret = ccall(("gdk_pixbuf_simple_anim_new", libgdkpixbuf), Ptr{GObject}, (Int32, Int32, Float32), _width, _height, _rate) - ret2 = convert(GdkPixbufSimpleAnim, ret, true) + ret2 = GdkPixbufSimpleAnimLeaf(ret, true) ret2 end function add_frame(instance::GdkPixbufSimpleAnim, _pixbuf::GdkPixbuf) diff --git a/src/gen/gio_methods b/src/gen/gio_methods index 062ec6d6..a6e1d720 100644 --- a/src/gen/gio_methods +++ b/src/gen/gio_methods @@ -302,7 +302,7 @@ $(Expr(:toplevel, quote end function AppLaunchContext_new() ret = ccall(("g_app_launch_context_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GAppLaunchContext, ret, true) + ret2 = GAppLaunchContextLeaf(ret, true) ret2 end function get_display(instance::GAppLaunchContext, _info::GAppInfo, _files::GLib.LList{GLib._GList{Ptr{GObject}}}) @@ -340,7 +340,7 @@ $(Expr(:toplevel, quote function Application_new(_application_id::Maybe(Union{AbstractString, Symbol}), _flags) _application_id_maybe = nothing_to_null(_application_id) ret = ccall(("g_application_new", libgio), Ptr{GObject}, (Cstring, UInt32), _application_id_maybe, _flags) - ret2 = convert(GApplication, ret, true) + ret2 = GApplicationLeaf(ret, true) ret2 end function id_is_valid(_application_id::Union{AbstractString, Symbol}) @@ -568,12 +568,12 @@ $(Expr(:toplevel, quote end function BufferedInputStream_new(_base_stream::GInputStream) ret = ccall(("g_buffered_input_stream_new", libgio), Ptr{GObject}, (Ptr{GObject},), _base_stream) - ret2 = convert(GInputStream, ret, true) + ret2 = GBufferedInputStreamLeaf(ret, true) ret2 end function BufferedInputStream_new_sized(_base_stream::GInputStream, _size::Integer) ret = ccall(("g_buffered_input_stream_new_sized", libgio), Ptr{GObject}, (Ptr{GObject}, UInt64), _base_stream, _size) - ret2 = convert(GInputStream, ret, true) + ret2 = GBufferedInputStreamLeaf(ret, true) ret2 end function fill(instance::GBufferedInputStream, _count::Integer, _cancellable::Maybe(GCancellable)) @@ -635,12 +635,12 @@ $(Expr(:toplevel, quote end function BufferedOutputStream_new(_base_stream::GOutputStream) ret = ccall(("g_buffered_output_stream_new", libgio), Ptr{GObject}, (Ptr{GObject},), _base_stream) - ret2 = convert(GOutputStream, ret, true) + ret2 = GBufferedOutputStreamLeaf(ret, true) ret2 end function BufferedOutputStream_new_sized(_base_stream::GOutputStream, _size::Integer) ret = ccall(("g_buffered_output_stream_new_sized", libgio), Ptr{GObject}, (Ptr{GObject}, UInt64), _base_stream, _size) - ret2 = convert(GOutputStream, ret, true) + ret2 = GBufferedOutputStreamLeaf(ret, true) ret2 end function get_auto_grow(instance::GBufferedOutputStream) @@ -662,7 +662,7 @@ $(Expr(:toplevel, quote end function BytesIcon_new(_bytes::GBytes) ret = ccall(("g_bytes_icon_new", libgio), Ptr{GObject}, (Ptr{GBytes},), _bytes) - ret2 = convert(GBytesIcon, ret, true) + ret2 = GBytesIconLeaf(ret, true) ret2 end function get_bytes(instance::GBytesIcon) @@ -672,7 +672,7 @@ $(Expr(:toplevel, quote end function Cancellable_new() ret = ccall(("g_cancellable_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GCancellable, ret, true) + ret2 = GCancellableLeaf(ret, true) ret2 end function get_current() @@ -729,7 +729,7 @@ $(Expr(:toplevel, quote err = err_buf() ret = ccall(("g_charset_converter_new", libgio), Ptr{GObject}, (Cstring, Cstring, Ptr{Ptr{GError}}), _to_charset, _from_charset, err) check_err(err) - ret2 = convert(GCharsetConverter, ret, true) + ret2 = GCharsetConverterLeaf(ret, true) ret2 end function get_num_fallbacks(instance::GCharsetConverter) @@ -747,7 +747,7 @@ $(Expr(:toplevel, quote end function ConverterInputStream_new(_base_stream::GInputStream, _converter::GConverter) ret = ccall(("g_converter_input_stream_new", libgio), Ptr{GObject}, (Ptr{GObject}, Ptr{GObject}), _base_stream, _converter) - ret2 = convert(GInputStream, ret, true) + ret2 = GConverterInputStreamLeaf(ret, true) ret2 end function get_converter(instance::GConverterInputStream) @@ -760,7 +760,7 @@ $(Expr(:toplevel, quote end function ConverterOutputStream_new(_base_stream::GOutputStream, _converter::GConverter) ret = ccall(("g_converter_output_stream_new", libgio), Ptr{GObject}, (Ptr{GObject}, Ptr{GObject}), _base_stream, _converter) - ret2 = convert(GOutputStream, ret, true) + ret2 = GConverterOutputStreamLeaf(ret, true) ret2 end function get_converter(instance::GConverterOutputStream) @@ -773,7 +773,7 @@ $(Expr(:toplevel, quote end function Credentials_new() ret = ccall(("g_credentials_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GCredentials, ret, true) + ret2 = GCredentialsLeaf(ret, true) ret2 end function get_unix_pid(instance::GCredentials) @@ -819,7 +819,7 @@ $(Expr(:toplevel, quote end function DBusAuthObserver_new() ret = ccall(("g_dbus_auth_observer_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GDBusAuthObserver, ret, true) + ret2 = GDBusAuthObserverLeaf(ret, true) ret2 end function allow_mechanism(instance::GDBusAuthObserver, _mechanism::Union{AbstractString, Symbol}) @@ -881,7 +881,7 @@ $(Expr(:toplevel, quote end function DBusMessage_new() ret = ccall(("g_dbus_message_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GDBusMessage, ret, true) + ret2 = GDBusMessageLeaf(ret, true) ret2 end function DBusMessage_new_from_blob(_blob, _capabilities) @@ -890,19 +890,19 @@ $(Expr(:toplevel, quote err = err_buf() ret = ccall(("g_dbus_message_new_from_blob", libgio), Ptr{GObject}, (Ptr{UInt8}, UInt64, UInt32, Ptr{Ptr{GError}}), _blob_arr, _blob_len, _capabilities, err) check_err(err) - ret2 = convert(GDBusMessage, ret, true) + ret2 = GDBusMessageLeaf(ret, true) ret2 end function DBusMessage_new_method_call(_name::Maybe(Union{AbstractString, Symbol}), _path::Union{AbstractString, Symbol}, _interface_::Maybe(Union{AbstractString, Symbol}), _method::Union{AbstractString, Symbol}) _name_maybe = nothing_to_null(_name) _interface__maybe = nothing_to_null(_interface_) ret = ccall(("g_dbus_message_new_method_call", libgio), Ptr{GObject}, (Cstring, Cstring, Cstring, Cstring), _name_maybe, _path, _interface__maybe, _method) - ret2 = convert(GDBusMessage, ret, true) + ret2 = GDBusMessageLeaf(ret, true) ret2 end function DBusMessage_new_signal(_path::Union{AbstractString, Symbol}, _interface_::Union{AbstractString, Symbol}, _signal::Union{AbstractString, Symbol}) ret = ccall(("g_dbus_message_new_signal", libgio), Ptr{GObject}, (Cstring, Cstring, Cstring), _path, _interface_, _signal) - ret2 = convert(GDBusMessage, ret, true) + ret2 = GDBusMessageLeaf(ret, true) ret2 end function bytes_needed(_blob) @@ -1112,14 +1112,14 @@ $(Expr(:toplevel, quote err = err_buf() ret = ccall(("g_dbus_object_manager_client_new_finish", libgio), Ptr{GObject}, (Ptr{GObject}, Ptr{Ptr{GError}}), _res, err) check_err(err) - ret2 = convert(GDBusObjectManagerClient, ret, true) + ret2 = GDBusObjectManagerClientLeaf(ret, true) ret2 end function DBusObjectManagerClient_new_for_bus_finish(_res::GAsyncResult) err = err_buf() ret = ccall(("g_dbus_object_manager_client_new_for_bus_finish", libgio), Ptr{GObject}, (Ptr{GObject}, Ptr{Ptr{GError}}), _res, err) check_err(err) - ret2 = convert(GDBusObjectManagerClient, ret, true) + ret2 = GDBusObjectManagerClientLeaf(ret, true) ret2 end function get_connection(instance::GDBusObjectManagerClient) @@ -1144,7 +1144,7 @@ $(Expr(:toplevel, quote end function DBusObjectManagerServer_new(_object_path::Union{AbstractString, Symbol}) ret = ccall(("g_dbus_object_manager_server_new", libgio), Ptr{GObject}, (Cstring,), _object_path) - ret2 = convert(GDBusObjectManagerServer, ret, true) + ret2 = GDBusObjectManagerServerLeaf(ret, true) ret2 end function export_uniquely(instance::GDBusObjectManagerServer, _object::GDBusObjectSkeleton) @@ -1173,7 +1173,7 @@ $(Expr(:toplevel, quote end function DBusObjectProxy_new(_connection::GDBusConnection, _object_path::Union{AbstractString, Symbol}) ret = ccall(("g_dbus_object_proxy_new", libgio), Ptr{GObject}, (Ptr{GObject}, Cstring), _connection, _object_path) - ret2 = convert(GDBusObjectProxy, ret, true) + ret2 = GDBusObjectProxyLeaf(ret, true) ret2 end function get_connection(instance::GDBusObjectProxy) @@ -1183,7 +1183,7 @@ $(Expr(:toplevel, quote end function DBusObjectSkeleton_new(_object_path::Union{AbstractString, Symbol}) ret = ccall(("g_dbus_object_skeleton_new", libgio), Ptr{GObject}, (Cstring,), _object_path) - ret2 = convert(GDBusObjectSkeleton, ret, true) + ret2 = GDBusObjectSkeletonLeaf(ret, true) ret2 end function add_interface(instance::GDBusObjectSkeleton, _interface_::GDBusInterfaceSkeleton) @@ -1236,7 +1236,7 @@ $(Expr(:toplevel, quote end function DataInputStream_new(_base_stream::GInputStream) ret = ccall(("g_data_input_stream_new", libgio), Ptr{GObject}, (Ptr{GObject},), _base_stream) - ret2 = convert(GDataInputStream, ret, true) + ret2 = GDataInputStreamLeaf(ret, true) ret2 end function get_byte_order(instance::GDataInputStream) @@ -1370,7 +1370,7 @@ $(Expr(:toplevel, quote end function DataOutputStream_new(_base_stream::GOutputStream) ret = ccall(("g_data_output_stream_new", libgio), Ptr{GObject}, (Ptr{GObject},), _base_stream) - ret2 = convert(GDataOutputStream, ret, true) + ret2 = GDataOutputStreamLeaf(ret, true) ret2 end function get_byte_order(instance::GDataOutputStream) @@ -1614,12 +1614,12 @@ $(Expr(:toplevel, quote end function Emblem_new(_icon::GIcon) ret = ccall(("g_emblem_new", libgio), Ptr{GObject}, (Ptr{GObject},), _icon) - ret2 = convert(GEmblem, ret, true) + ret2 = GEmblemLeaf(ret, true) ret2 end function Emblem_new_with_origin(_icon::GIcon, _origin) ret = ccall(("g_emblem_new_with_origin", libgio), Ptr{GObject}, (Ptr{GObject}, UInt32), _icon, _origin) - ret2 = convert(GEmblem, ret, true) + ret2 = GEmblemLeaf(ret, true) ret2 end function get_icon(instance::GEmblem) @@ -1638,7 +1638,7 @@ $(Expr(:toplevel, quote function EmblemedIcon_new(_icon::GIcon, _emblem::Maybe(GEmblem)) _emblem_maybe = nothing_to_null(_emblem) ret = ccall(("g_emblemed_icon_new", libgio), Ptr{GObject}, (Ptr{GObject}, Ptr{GObject}), _icon, _emblem_maybe) - ret2 = convert(GEmblemedIcon, ret, true) + ret2 = GEmblemedIconLeaf(ret, true) ret2 end function add_emblem(instance::GEmblemedIcon, _emblem::GEmblem) @@ -1796,7 +1796,7 @@ $(Expr(:toplevel, quote end function FileIcon_new(_file::GFile) ret = ccall(("g_file_icon_new", libgio), Ptr{GObject}, (Ptr{GObject},), _file) - ret2 = convert(GFileIcon, ret, true) + ret2 = GFileIconLeaf(ret, true) ret2 end function get_file(instance::GFileIcon) @@ -1809,7 +1809,7 @@ $(Expr(:toplevel, quote end function FileInfo_new() ret = ccall(("g_file_info_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GFileInfo, ret, true) + ret2 = GFileInfoLeaf(ret, true) ret2 end function clear_status(instance::GFileInfo) @@ -2204,7 +2204,7 @@ $(Expr(:toplevel, quote end function FilenameCompleter_new() ret = ccall(("g_filename_completer_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GFilenameCompleter, ret, true) + ret2 = GFilenameCompleterLeaf(ret, true) ret2 end function get_completion_suffix(instance::GFilenameCompleter, _initial_text::Union{AbstractString, Symbol}) @@ -2333,13 +2333,13 @@ $(Expr(:toplevel, quote end function InetAddress_new_any(_family) ret = ccall(("g_inet_address_new_any", libgio), Ptr{GObject}, (UInt32,), _family) - ret2 = convert(GInetAddress, ret, true) + ret2 = GInetAddressLeaf(ret, true) ret2 end function InetAddress_new_from_bytes(_bytes, _family) _bytes_arr = convert(Vector{UInt8}, _bytes) ret = ccall(("g_inet_address_new_from_bytes", libgio), Ptr{GObject}, (Ptr{UInt8}, UInt32), _bytes_arr, _family) - ret2 = convert(GInetAddress, ret, true) + ret2 = GInetAddressLeaf(ret, true) ret2 end function InetAddress_new_from_string(_string::Union{AbstractString, Symbol}) @@ -2349,7 +2349,7 @@ $(Expr(:toplevel, quote end function InetAddress_new_loopback(_family) ret = ccall(("g_inet_address_new_loopback", libgio), Ptr{GObject}, (UInt32,), _family) - ret2 = convert(GInetAddress, ret, true) + ret2 = GInetAddressLeaf(ret, true) ret2 end function equal(instance::GInetAddress, _other_address::GInetAddress) @@ -2425,14 +2425,14 @@ $(Expr(:toplevel, quote err = err_buf() ret = ccall(("g_inet_address_mask_new", libgio), Ptr{GObject}, (Ptr{GObject}, UInt32, Ptr{Ptr{GError}}), _addr, _length, err) check_err(err) - ret2 = convert(GInetAddressMask, ret, true) + ret2 = GInetAddressMaskLeaf(ret, true) ret2 end function InetAddressMask_new_from_string(_mask_string::Union{AbstractString, Symbol}) err = err_buf() ret = ccall(("g_inet_address_mask_new_from_string", libgio), Ptr{GObject}, (Cstring, Ptr{Ptr{GError}}), _mask_string, err) check_err(err) - ret2 = convert(GInetAddressMask, ret, true) + ret2 = GInetAddressMaskLeaf(ret, true) ret2 end function equal(instance::GInetAddressMask, _mask2::GInetAddressMask) @@ -2466,7 +2466,7 @@ $(Expr(:toplevel, quote end function InetSocketAddress_new(_address::GInetAddress, _port::Integer) ret = ccall(("g_inet_socket_address_new", libgio), Ptr{GObject}, (Ptr{GObject}, UInt16), _address, _port) - ret2 = convert(GSocketAddress, ret, true) + ret2 = GInetSocketAddressLeaf(ret, true) ret2 end function InetSocketAddress_new_from_string(_address::Union{AbstractString, Symbol}, _port::Integer) @@ -2665,7 +2665,7 @@ $(Expr(:toplevel, quote end function ListStore_new(_item_type::Integer) ret = ccall(("g_list_store_new", libgio), Ptr{GObject}, (UInt64,), _item_type) - ret2 = convert(GListStore, ret, true) + ret2 = GListStoreLeaf(ret, true) ret2 end function append(instance::GListStore, _item::GObject) @@ -2735,12 +2735,12 @@ $(Expr(:toplevel, quote end function MemoryInputStream_new() ret = ccall(("g_memory_input_stream_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GInputStream, ret, true) + ret2 = GMemoryInputStreamLeaf(ret, true) ret2 end function MemoryInputStream_new_from_bytes(_bytes::GBytes) ret = ccall(("g_memory_input_stream_new_from_bytes", libgio), Ptr{GObject}, (Ptr{GBytes},), _bytes) - ret2 = convert(GInputStream, ret, true) + ret2 = GMemoryInputStreamLeaf(ret, true) ret2 end function add_bytes(instance::GMemoryInputStream, _bytes::GBytes) @@ -2749,7 +2749,7 @@ $(Expr(:toplevel, quote end function MemoryOutputStream_new_resizable() ret = ccall(("g_memory_output_stream_new_resizable", libgio), Ptr{GObject}, ()) - ret2 = convert(GOutputStream, ret, true) + ret2 = GMemoryOutputStreamLeaf(ret, true) ret2 end function get_data(instance::GMemoryOutputStream) @@ -2777,7 +2777,7 @@ $(Expr(:toplevel, quote end function Menu_new() ret = ccall(("g_menu_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GMenu, ret, true) + ret2 = GMenuLeaf(ret, true) ret2 end function append(instance::GMenu, _label::Maybe(Union{AbstractString, Symbol}), _detailed_action::Maybe(Union{AbstractString, Symbol})) @@ -2882,24 +2882,24 @@ $(Expr(:toplevel, quote _label_maybe = nothing_to_null(_label) _detailed_action_maybe = nothing_to_null(_detailed_action) ret = ccall(("g_menu_item_new", libgio), Ptr{GObject}, (Cstring, Cstring), _label_maybe, _detailed_action_maybe) - ret2 = convert(GMenuItem, ret, true) + ret2 = GMenuItemLeaf(ret, true) ret2 end function MenuItem_new_from_model(_model::GMenuModel, _item_index::Integer) ret = ccall(("g_menu_item_new_from_model", libgio), Ptr{GObject}, (Ptr{GObject}, Int32), _model, _item_index) - ret2 = convert(GMenuItem, ret, true) + ret2 = GMenuItemLeaf(ret, true) ret2 end function MenuItem_new_section(_label::Maybe(Union{AbstractString, Symbol}), _section::GMenuModel) _label_maybe = nothing_to_null(_label) ret = ccall(("g_menu_item_new_section", libgio), Ptr{GObject}, (Cstring, Ptr{GObject}), _label_maybe, _section) - ret2 = convert(GMenuItem, ret, true) + ret2 = GMenuItemLeaf(ret, true) ret2 end function MenuItem_new_submenu(_label::Maybe(Union{AbstractString, Symbol}), _submenu::GMenuModel) _label_maybe = nothing_to_null(_label) ret = ccall(("g_menu_item_new_submenu", libgio), Ptr{GObject}, (Cstring, Ptr{GObject}), _label_maybe, _submenu) - ret2 = convert(GMenuItem, ret, true) + ret2 = GMenuItemLeaf(ret, true) ret2 end function get_attribute_value(instance::GMenuItem, _attribute::Union{AbstractString, Symbol}, _expected_type::Maybe(GVariantType)) @@ -3014,7 +3014,7 @@ $(Expr(:toplevel, quote end function MountOperation_new() ret = ccall(("g_mount_operation_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GMountOperation, ret, true) + ret2 = GMountOperationLeaf(ret, true) ret2 end function get_anonymous(instance::GMountOperation) @@ -3106,17 +3106,17 @@ $(Expr(:toplevel, quote function NativeSocketAddress_new(_native::Maybe(Nothing), _len::Integer) _native_maybe = nothing_to_null(_native) ret = ccall(("g_native_socket_address_new", libgio), Ptr{GObject}, (Ptr{Nothing}, UInt64), _native_maybe, _len) - ret2 = convert(GSocketAddress, ret, true) + ret2 = GNativeSocketAddressLeaf(ret, true) ret2 end function NetworkAddress_new(_hostname::Union{AbstractString, Symbol}, _port::Integer) ret = ccall(("g_network_address_new", libgio), Ptr{GObject}, (Cstring, UInt16), _hostname, _port) - ret2 = convert(GNetworkAddress, ret, true) + ret2 = GNetworkAddressLeaf(ret, true) ret2 end function NetworkAddress_new_loopback(_port::Integer) ret = ccall(("g_network_address_new_loopback", libgio), Ptr{GObject}, (UInt16,), _port) - ret2 = convert(GNetworkAddress, ret, true) + ret2 = GNetworkAddressLeaf(ret, true) ret2 end function parse(_host_and_port::Union{AbstractString, Symbol}, _default_port::Integer) @@ -3149,7 +3149,7 @@ $(Expr(:toplevel, quote end function NetworkService_new(_service::Union{AbstractString, Symbol}, _protocol::Union{AbstractString, Symbol}, _domain::Union{AbstractString, Symbol}) ret = ccall(("g_network_service_new", libgio), Ptr{GObject}, (Cstring, Cstring, Cstring), _service, _protocol, _domain) - ret2 = convert(GNetworkService, ret, true) + ret2 = GNetworkServiceLeaf(ret, true) ret2 end function get_domain(instance::GNetworkService) @@ -3178,7 +3178,7 @@ $(Expr(:toplevel, quote end function Notification_new(_title::Union{AbstractString, Symbol}) ret = ccall(("g_notification_new", libgio), Ptr{GObject}, (Cstring,), _title) - ret2 = convert(GNotification, ret, true) + ret2 = GNotificationLeaf(ret, true) ret2 end function add_button(instance::GNotification, _label::Union{AbstractString, Symbol}, _detailed_action::Union{AbstractString, Symbol}) @@ -3536,14 +3536,14 @@ $(Expr(:toplevel, quote end function PropertyAction_new(_name::Union{AbstractString, Symbol}, _object::GObject, _property_name::Union{AbstractString, Symbol}) ret = ccall(("g_property_action_new", libgio), Ptr{GObject}, (Cstring, Ptr{GObject}, Cstring), _name, _object, _property_name) - ret2 = convert(GPropertyAction, ret, true) + ret2 = GPropertyActionLeaf(ret, true) ret2 end function ProxyAddress_new(_inetaddr::GInetAddress, _port::Integer, _protocol::Union{AbstractString, Symbol}, _dest_hostname::Union{AbstractString, Symbol}, _dest_port::Integer, _username::Maybe(Union{AbstractString, Symbol}), _password::Maybe(Union{AbstractString, Symbol})) _username_maybe = nothing_to_null(_username) _password_maybe = nothing_to_null(_password) ret = ccall(("g_proxy_address_new", libgio), Ptr{GObject}, (Ptr{GObject}, UInt16, Cstring, Cstring, UInt16, Cstring, Cstring), _inetaddr, _port, _protocol, _dest_hostname, _dest_port, _username_maybe, _password_maybe) - ret2 = convert(GSocketAddress, ret, true) + ret2 = GProxyAddressLeaf(ret, true) ret2 end function get_destination_hostname(instance::GProxyAddress) @@ -3721,29 +3721,29 @@ $(Expr(:toplevel, quote end function Settings_new(_schema_id::Union{AbstractString, Symbol}) ret = ccall(("g_settings_new", libgio), Ptr{GObject}, (Cstring,), _schema_id) - ret2 = convert(GSettings, ret, true) + ret2 = GSettingsLeaf(ret, true) ret2 end function Settings_new_full(_schema::GSettingsSchema, _backend::Maybe(GSettingsBackend), _path::Maybe(Union{AbstractString, Symbol})) _backend_maybe = nothing_to_null(_backend) _path_maybe = nothing_to_null(_path) ret = ccall(("g_settings_new_full", libgio), Ptr{GObject}, (Ptr{GSettingsSchema}, Ptr{GObject}, Cstring), _schema, _backend_maybe, _path_maybe) - ret2 = convert(GSettings, ret, true) + ret2 = GSettingsLeaf(ret, true) ret2 end function Settings_new_with_backend(_schema_id::Union{AbstractString, Symbol}, _backend::GSettingsBackend) ret = ccall(("g_settings_new_with_backend", libgio), Ptr{GObject}, (Cstring, Ptr{GObject}), _schema_id, _backend) - ret2 = convert(GSettings, ret, true) + ret2 = GSettingsLeaf(ret, true) ret2 end function Settings_new_with_backend_and_path(_schema_id::Union{AbstractString, Symbol}, _backend::GSettingsBackend, _path::Union{AbstractString, Symbol}) ret = ccall(("g_settings_new_with_backend_and_path", libgio), Ptr{GObject}, (Cstring, Ptr{GObject}, Cstring), _schema_id, _backend, _path) - ret2 = convert(GSettings, ret, true) + ret2 = GSettingsLeaf(ret, true) ret2 end function Settings_new_with_path(_schema_id::Union{AbstractString, Symbol}, _path::Union{AbstractString, Symbol}) ret = ccall(("g_settings_new_with_path", libgio), Ptr{GObject}, (Cstring, Cstring), _schema_id, _path) - ret2 = convert(GSettings, ret, true) + ret2 = GSettingsLeaf(ret, true) ret2 end function sync() @@ -3968,13 +3968,13 @@ $(Expr(:toplevel, quote function SimpleAction_new(_name::Union{AbstractString, Symbol}, _parameter_type::Maybe(GVariantType)) _parameter_type_maybe = nothing_to_null(_parameter_type) ret = ccall(("g_simple_action_new", libgio), Ptr{GObject}, (Cstring, Ptr{GVariantType}), _name, _parameter_type_maybe) - ret2 = convert(GSimpleAction, ret, true) + ret2 = GSimpleActionLeaf(ret, true) ret2 end function SimpleAction_new_stateful(_name::Union{AbstractString, Symbol}, _parameter_type::Maybe(GVariantType), _state::GVariant) _parameter_type_maybe = nothing_to_null(_parameter_type) ret = ccall(("g_simple_action_new_stateful", libgio), Ptr{GObject}, (Cstring, Ptr{GVariantType}, Ptr{GVariant}), _name, _parameter_type_maybe, _state) - ret2 = convert(GSimpleAction, ret, true) + ret2 = GSimpleActionLeaf(ret, true) ret2 end function set_enabled(instance::GSimpleAction, _enabled::Bool) @@ -3992,31 +3992,31 @@ $(Expr(:toplevel, quote end function SimpleActionGroup_new() ret = ccall(("g_simple_action_group_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GSimpleActionGroup, ret, true) + ret2 = GSimpleActionGroupLeaf(ret, true) ret2 end function SimpleIOStream_new(_input_stream::GInputStream, _output_stream::GOutputStream) ret = ccall(("g_simple_io_stream_new", libgio), Ptr{GObject}, (Ptr{GObject}, Ptr{GObject}), _input_stream, _output_stream) - ret2 = convert(GIOStream, ret, true) + ret2 = GSimpleIOStreamLeaf(ret, true) ret2 end function SimplePermission_new(_allowed::Bool) ret = ccall(("g_simple_permission_new", libgio), Ptr{GObject}, (Cint,), _allowed) - ret2 = convert(GPermission, ret, true) + ret2 = GSimplePermissionLeaf(ret, true) ret2 end function Socket_new(_family, _type, _protocol) err = err_buf() ret = ccall(("g_socket_new", libgio), Ptr{GObject}, (UInt32, UInt32, UInt32, Ptr{Ptr{GError}}), _family, _type, _protocol, err) check_err(err) - ret2 = convert(GSocket, ret, true) + ret2 = GSocketLeaf(ret, true) ret2 end function Socket_new_from_fd(_fd::Integer) err = err_buf() ret = ccall(("g_socket_new_from_fd", libgio), Ptr{GObject}, (Int32, Ptr{Ptr{GError}}), _fd, err) check_err(err) - ret2 = convert(GSocket, ret, true) + ret2 = GSocketLeaf(ret, true) ret2 end function accept(instance::GSocket, _cancellable::Maybe(GCancellable)) @@ -4415,7 +4415,7 @@ $(Expr(:toplevel, quote end function SocketClient_new() ret = ccall(("g_socket_client_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GSocketClient, ret, true) + ret2 = GSocketClientLeaf(ret, true) ret2 end function add_application_proxy(instance::GSocketClient, _protocol::Union{AbstractString, Symbol}) @@ -4690,7 +4690,7 @@ $(Expr(:toplevel, quote end function SocketListener_new() ret = ccall(("g_socket_listener_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GSocketListener, ret, true) + ret2 = GSocketListenerLeaf(ret, true) ret2 end function accept(instance::GSocketListener, _cancellable::Maybe(GCancellable)) @@ -4803,7 +4803,7 @@ $(Expr(:toplevel, quote end function SocketService_new() ret = ccall(("g_socket_service_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GSocketService, ret, true) + ret2 = GSocketServiceLeaf(ret, true) ret2 end function is_active(instance::GSocketService) @@ -4823,7 +4823,7 @@ $(Expr(:toplevel, quote err = err_buf() ret = ccall(("g_subprocess_newv", libgio), Ptr{GObject}, (Ptr{Cstring}, UInt32, Ptr{Ptr{GError}}), _argv, _flags, err) check_err(err) - ret2 = convert(GSubprocess, ret, true) + ret2 = GSubprocessLeaf(ret, true) ret2 end function communicate(instance::GSubprocess, _stdin_buf::Maybe(GBytes), _cancellable::Maybe(GCancellable)) @@ -5019,7 +5019,7 @@ $(Expr(:toplevel, quote end function SubprocessLauncher_new(_flags) ret = ccall(("g_subprocess_launcher_new", libgio), Ptr{GObject}, (UInt32,), _flags) - ret2 = convert(GSubprocessLauncher, ret, true) + ret2 = GSubprocessLauncherLeaf(ret, true) ret2 end function close(instance::GSubprocessLauncher) @@ -5099,7 +5099,7 @@ $(Expr(:toplevel, quote end function TcpWrapperConnection_new(_base_io_stream::GIOStream, _socket::GSocket) ret = ccall(("g_tcp_wrapper_connection_new", libgio), Ptr{GObject}, (Ptr{GObject}, Ptr{GObject}), _base_io_stream, _socket) - ret2 = convert(GSocketConnection, ret, true) + ret2 = GTcpWrapperConnectionLeaf(ret, true) ret2 end function get_base_io_stream(instance::GTcpWrapperConnection) @@ -5109,7 +5109,7 @@ $(Expr(:toplevel, quote end function TestDBus_new(_flags) ret = ccall(("g_test_dbus_new", libgio), Ptr{GObject}, (UInt32,), _flags) - ret2 = convert(GTestDBus, ret, true) + ret2 = GTestDBusLeaf(ret, true) ret2 end function unset() @@ -5144,18 +5144,18 @@ $(Expr(:toplevel, quote end function ThemedIcon_new(_iconname::Union{AbstractString, Symbol}) ret = ccall(("g_themed_icon_new", libgio), Ptr{GObject}, (Cstring,), _iconname) - ret2 = convert(GThemedIcon, ret, true) + ret2 = GThemedIconLeaf(ret, true) ret2 end function ThemedIcon_new_from_names(_iconnames) _len = length(_iconnames) ret = ccall(("g_themed_icon_new_from_names", libgio), Ptr{GObject}, (Ptr{Cstring}, Int32), _iconnames, _len) - ret2 = convert(GThemedIcon, ret, true) + ret2 = GThemedIconLeaf(ret, true) ret2 end function ThemedIcon_new_with_default_fallbacks(_iconname::Union{AbstractString, Symbol}) ret = ccall(("g_themed_icon_new_with_default_fallbacks", libgio), Ptr{GObject}, (Cstring,), _iconname) - ret2 = convert(GThemedIcon, ret, true) + ret2 = GThemedIconLeaf(ret, true) ret2 end function append_name(instance::GThemedIcon, _iconname::Union{AbstractString, Symbol}) @@ -5177,7 +5177,7 @@ $(Expr(:toplevel, quote end function ThreadedSocketService_new(_max_threads::Integer) ret = ccall(("g_threaded_socket_service_new", libgio), Ptr{GObject}, (Int32,), _max_threads) - ret2 = convert(GSocketService, ret, true) + ret2 = GThreadedSocketServiceLeaf(ret, true) ret2 end function TlsCertificate_new_from_file(_file::Union{AbstractString, Symbol}) @@ -5564,7 +5564,7 @@ $(Expr(:toplevel, quote end function TlsPassword_new(_flags, _description::Union{AbstractString, Symbol}) ret = ccall(("g_tls_password_new", libgio), Ptr{GObject}, (UInt32, Cstring), _flags, _description) - ret2 = convert(GTlsPassword, ret, true) + ret2 = GTlsPasswordLeaf(ret, true) ret2 end function get_description(instance::GTlsPassword) @@ -5678,12 +5678,12 @@ $(Expr(:toplevel, quote end function UnixCredentialsMessage_new() ret = ccall(("g_unix_credentials_message_new", libgio), Ptr{GObject}, ()) - ret2 = convert(GSocketControlMessage, ret, true) + ret2 = GUnixCredentialsMessageLeaf(ret, true) ret2 end function UnixCredentialsMessage_new_with_credentials(_credentials::GCredentials) ret = ccall(("g_unix_credentials_message_new_with_credentials", libgio), Ptr{GObject}, (Ptr{GObject},), _credentials) - ret2 = convert(GSocketControlMessage, ret, true) + ret2 = GUnixCredentialsMessageLeaf(ret, true) ret2 end function is_supported() @@ -5776,7 +5776,7 @@ $(Expr(:toplevel, quote end function ZlibCompressor_new(_format, _level::Integer) ret = ccall(("g_zlib_compressor_new", libgio), Ptr{GObject}, (UInt32, Int32), _format, _level) - ret2 = convert(GZlibCompressor, ret, true) + ret2 = GZlibCompressorLeaf(ret, true) ret2 end function get_file_info(instance::GZlibCompressor) @@ -5791,7 +5791,7 @@ $(Expr(:toplevel, quote end function ZlibDecompressor_new(_format) ret = ccall(("g_zlib_decompressor_new", libgio), Ptr{GObject}, (UInt32,), _format) - ret2 = convert(GZlibDecompressor, ret, true) + ret2 = GZlibDecompressorLeaf(ret, true) ret2 end function get_file_info(instance::GZlibDecompressor) diff --git a/src/gen/gsk4_methods b/src/gen/gsk4_methods index 0196717f..a7d66cb1 100644 --- a/src/gen/gsk4_methods +++ b/src/gen/gsk4_methods @@ -265,7 +265,7 @@ $(Expr(:toplevel, quote end function BroadwayRenderer_new() ret = ccall(("gsk_broadway_renderer_new", libgtk4), Ptr{GObject}, ()) - ret2 = convert(GskRenderer, ret, true) + ret2 = GskBroadwayRendererLeaf(ret, true) ret2 end function CairoNode_new(_bounds::Union{GrapheneRect, Ref{_GrapheneRect}}) @@ -285,7 +285,7 @@ $(Expr(:toplevel, quote end function CairoRenderer_new() ret = ccall(("gsk_cairo_renderer_new", libgtk4), Ptr{GObject}, ()) - ret2 = convert(GskRenderer, ret, true) + ret2 = GskCairoRendererLeaf(ret, true) ret2 end function ClipNode_new(_child::GskRenderNode, _clip::Union{GrapheneRect, Ref{_GrapheneRect}}) @@ -416,17 +416,17 @@ $(Expr(:toplevel, quote end function GLRenderer_new() ret = ccall(("gsk_gl_renderer_new", libgtk4), Ptr{GObject}, ()) - ret2 = convert(GskRenderer, ret, true) + ret2 = GskGLRendererLeaf(ret, true) ret2 end function GLShader_new_from_bytes(_sourcecode::GBytes) ret = ccall(("gsk_gl_shader_new_from_bytes", libgtk4), Ptr{GObject}, (Ptr{GBytes},), _sourcecode) - ret2 = convert(GskGLShader, ret, true) + ret2 = GskGLShaderLeaf(ret, true) ret2 end function GLShader_new_from_resource(_resource_path::Union{AbstractString, Symbol}) ret = ccall(("gsk_gl_shader_new_from_resource", libgtk4), Ptr{GObject}, (Cstring,), _resource_path) - ret2 = convert(GskGLShader, ret, true) + ret2 = GskGLShaderLeaf(ret, true) ret2 end function compile(instance::GskGLShader, _renderer::GskRenderer) diff --git a/src/gen/gsk4_structs b/src/gen/gsk4_structs index 13fa00f6..61177040 100644 --- a/src/gen/gsk4_structs +++ b/src/gen/gsk4_structs @@ -170,6 +170,14 @@ $(Expr(:toplevel, quote handle::Ptr{GskRenderNode} end end + begin + abstract type GskColorMatrixNode <: GskRenderNode end + end + begin + mutable struct GskColorMatrixNodeLeaf <: GskColorMatrixNode + handle::Ptr{GskRenderNode} + end + end begin abstract type GskColorNode <: GskRenderNode end end @@ -178,6 +186,38 @@ $(Expr(:toplevel, quote handle::Ptr{GskRenderNode} end end + begin + abstract type GskConicGradientNode <: GskRenderNode end + end + begin + mutable struct GskConicGradientNodeLeaf <: GskConicGradientNode + handle::Ptr{GskRenderNode} + end + end + begin + abstract type GskContainerNode <: GskRenderNode end + end + begin + mutable struct GskContainerNodeLeaf <: GskContainerNode + handle::Ptr{GskRenderNode} + end + end + begin + abstract type GskCrossFadeNode <: GskRenderNode end + end + begin + mutable struct GskCrossFadeNodeLeaf <: GskCrossFadeNode + handle::Ptr{GskRenderNode} + end + end + begin + abstract type GskDebugNode <: GskRenderNode end + end + begin + mutable struct GskDebugNodeLeaf <: GskDebugNode + handle::Ptr{GskRenderNode} + end + end begin abstract type GskGLRenderer <: GskRenderer end mutable struct GskGLRendererLeaf <: GskGLRenderer @@ -206,6 +246,22 @@ $(Expr(:toplevel, quote end gtype_wrapper_cache[:GskGLShader] = GskGLShaderLeaf end + begin + abstract type GskGLShaderNode <: GskRenderNode end + end + begin + mutable struct GskGLShaderNodeLeaf <: GskGLShaderNode + handle::Ptr{GskRenderNode} + end + end + begin + abstract type GskInsetShadowNode <: GskRenderNode end + end + begin + mutable struct GskInsetShadowNodeLeaf <: GskInsetShadowNode + handle::Ptr{GskRenderNode} + end + end begin abstract type GskLinearGradientNode <: GskRenderNode end end @@ -236,6 +292,22 @@ $(Expr(:toplevel, quote handle::Ptr{GskRenderNode} end end + begin + abstract type GskOutsetShadowNode <: GskRenderNode end + end + begin + mutable struct GskOutsetShadowNodeLeaf <: GskOutsetShadowNode + handle::Ptr{GskRenderNode} + end + end + begin + abstract type GskRadialGradientNode <: GskRenderNode end + end + begin + mutable struct GskRadialGradientNodeLeaf <: GskRadialGradientNode + handle::Ptr{GskRenderNode} + end + end begin abstract type GskRepeatNode <: GskRenderNode end end @@ -244,6 +316,22 @@ $(Expr(:toplevel, quote handle::Ptr{GskRenderNode} end end + begin + abstract type GskRepeatingLinearGradientNode <: GskRenderNode end + end + begin + mutable struct GskRepeatingLinearGradientNodeLeaf <: GskRepeatingLinearGradientNode + handle::Ptr{GskRenderNode} + end + end + begin + abstract type GskRepeatingRadialGradientNode <: GskRenderNode end + end + begin + mutable struct GskRepeatingRadialGradientNodeLeaf <: GskRepeatingRadialGradientNode + handle::Ptr{GskRenderNode} + end + end begin abstract type GskRoundedClipNode <: GskRenderNode end end @@ -305,9 +393,24 @@ $(Expr(:toplevel, quote function GskClipNode(_child::GskRenderNode, _clip::Union{GrapheneRect, Ref{_GrapheneRect}}) G_.ClipNode_new(_child, _clip) end + function GskColorMatrixNode(_child::GskRenderNode, _color_matrix::Union{GrapheneMatrix, Ref{_GrapheneMatrix}}, _color_offset::Union{GrapheneVec4, Ref{_GrapheneVec4}}) + G_.ColorMatrixNode_new(_child, _color_matrix, _color_offset) + end function GskColorNode(_rgba::Union{GdkRGBA, Ref{_GdkRGBA}}, _bounds::Union{GrapheneRect, Ref{_GrapheneRect}}) G_.ColorNode_new(_rgba, _bounds) end + function GskConicGradientNode(_bounds::Union{GrapheneRect, Ref{_GrapheneRect}}, _center::Union{GraphenePoint, Ref{_GraphenePoint}}, _rotation::Real, _color_stops) + G_.ConicGradientNode_new(_bounds, _center, _rotation, _color_stops) + end + function GskContainerNode(_children) + G_.ContainerNode_new(_children) + end + function GskCrossFadeNode(_start::GskRenderNode, _end::GskRenderNode, _progress::Real) + G_.CrossFadeNode_new(_start, _end, _progress) + end + function GskDebugNode(_child::GskRenderNode, _message::Union{AbstractString, Symbol}) + G_.DebugNode_new(_child, _message) + end function GskGLRenderer() G_.GLRenderer_new() end @@ -321,12 +424,24 @@ $(Expr(:toplevel, quote GLib.setproperties!(obj; kwargs...) obj end + function GskGLShaderNode(_shader::GskGLShader, _bounds::Union{GrapheneRect, Ref{_GrapheneRect}}, _args::GBytes, _children) + G_.GLShaderNode_new(_shader, _bounds, _args, _children) + end + function GskInsetShadowNode(_outline::_GskRoundedRect, _color::Union{GdkRGBA, Ref{_GdkRGBA}}, _dx::Real, _dy::Real, _spread::Real, _blur_radius::Real) + G_.InsetShadowNode_new(_outline, _color, _dx, _dy, _spread, _blur_radius) + end function GskLinearGradientNode(_bounds::Union{GrapheneRect, Ref{_GrapheneRect}}, _start::Union{GraphenePoint, Ref{_GraphenePoint}}, _end::Union{GraphenePoint, Ref{_GraphenePoint}}, _color_stops) G_.LinearGradientNode_new(_bounds, _start, _end, _color_stops) end function GskOpacityNode(_child::GskRenderNode, _opacity::Real) G_.OpacityNode_new(_child, _opacity) end + function GskOutsetShadowNode(_outline::_GskRoundedRect, _color::Union{GdkRGBA, Ref{_GdkRGBA}}, _dx::Real, _dy::Real, _spread::Real, _blur_radius::Real) + G_.OutsetShadowNode_new(_outline, _color, _dx, _dy, _spread, _blur_radius) + end + function GskRadialGradientNode(_bounds::Union{GrapheneRect, Ref{_GrapheneRect}}, _center::Union{GraphenePoint, Ref{_GraphenePoint}}, _hradius::Real, _vradius::Real, _start::Real, _end::Real, _color_stops) + G_.RadialGradientNode_new(_bounds, _center, _hradius, _vradius, _start, _end, _color_stops) + end function GskRenderer(_surface::GdkSurface; kwargs...) obj = G_.Renderer_new_for_surface(_surface) GLib.setproperties!(obj; kwargs...) @@ -335,6 +450,12 @@ $(Expr(:toplevel, quote function GskRepeatNode(_bounds::Union{GrapheneRect, Ref{_GrapheneRect}}, _child::GskRenderNode, _child_bounds::Maybe(Union{GrapheneRect, Ref{_GrapheneRect}})) G_.RepeatNode_new(_bounds, _child, _child_bounds) end + function GskRepeatingLinearGradientNode(_bounds::Union{GrapheneRect, Ref{_GrapheneRect}}, _start::Union{GraphenePoint, Ref{_GraphenePoint}}, _end::Union{GraphenePoint, Ref{_GraphenePoint}}, _color_stops) + G_.RepeatingLinearGradientNode_new(_bounds, _start, _end, _color_stops) + end + function GskRepeatingRadialGradientNode(_bounds::Union{GrapheneRect, Ref{_GrapheneRect}}, _center::Union{GraphenePoint, Ref{_GraphenePoint}}, _hradius::Real, _vradius::Real, _start::Real, _end::Real, _color_stops) + G_.RepeatingRadialGradientNode_new(_bounds, _center, _hradius, _vradius, _start, _end, _color_stops) + end function GskRoundedClipNode(_child::GskRenderNode, _clip::_GskRoundedRect) G_.RoundedClipNode_new(_child, _clip) end @@ -356,18 +477,29 @@ $(Expr(:toplevel, quote @doc "A render node for a Cairo surface.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.CairoNode.html)." GskCairoNode @doc "A GSK renderer that is using cairo.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.CairoRenderer.html)." GskCairoRenderer @doc "A render node applying a rectangular clip to its single child node.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.ClipNode.html)." GskClipNode + @doc "A render node controlling the color matrix of its single child node.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.ColorMatrixNode.html)." GskColorMatrixNode @doc "A render node for a solid color.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.ColorNode.html)." GskColorNode + @doc "A render node for a conic gradient.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.ConicGradientNode.html)." GskConicGradientNode + @doc "A render node that can contain other render nodes.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.ContainerNode.html)." GskContainerNode + @doc "A render node cross fading between two child nodes.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.CrossFadeNode.html)." GskCrossFadeNode + @doc "A render node that emits a debugging message when drawing its\nchild node.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.DebugNode.html)." GskDebugNode @doc "A `GskGLShader` is a snippet of GLSL that is meant to run in the\nfragment shader of the rendering pipeline.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.GLShader.html)." GskGLShader + @doc "A render node using a GL shader when drawing its children nodes.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.GLShaderNode.html)." GskGLShaderNode + @doc "A render node for an inset shadow.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.InsetShadowNode.html)." GskInsetShadowNode @doc "A render node for a linear gradient.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.LinearGradientNode.html)." GskLinearGradientNode @doc "A render node controlling the opacity of its single child node.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.OpacityNode.html)." GskOpacityNode + @doc "A render node for an outset shadow.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.OutsetShadowNode.html)." GskOutsetShadowNode + @doc "A render node for a radial gradient.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.RadialGradientNode.html)." GskRadialGradientNode @doc "`GskRenderNode` is the basic block in a scene graph to be\nrendered using [class@Gsk.Renderer].\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.RenderNode.html)." GskRenderNode @doc "`GskRenderer` is a class that renders a scene graph defined via a\ntree of [class@Gsk.RenderNode] instances.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.Renderer.html)." GskRenderer @doc "A render node repeating its single child node.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.RepeatNode.html)." GskRepeatNode + @doc "A render node for a repeating linear gradient.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.RepeatingLinearGradientNode.html)." GskRepeatingLinearGradientNode + @doc "A render node for a repeating radial gradient.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.RepeatingRadialGradientNode.html)." GskRepeatingRadialGradientNode @doc "A render node applying a rounded rectangle clip to its single child.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.RoundedClipNode.html)." GskRoundedClipNode @doc "A render node drawing one or more shadows behind its single child node.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.ShadowNode.html)." GskShadowNode @doc "A render node drawing a set of glyphs.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.TextNode.html)." GskTextNode @doc "A render node for a `GdkTexture`.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.TextureNode.html)." GskTextureNode @doc "A render node applying a `GskTransform` to its single child node.\n \nDetails can be found in the [GTK docs](https://docs.gtk.org/gsk4/class.TransformNode.html)." GskTransformNode - export GskColorStop, _GskColorStop, GskParseLocation, _GskParseLocation, GskRoundedRect, _GskRoundedRect, GskShadow, _GskShadow, GskTransform, GskBlendNode, GskBlendNodeLeaf, GskBlurNode, GskBlurNodeLeaf, GskBorderNode, GskBorderNodeLeaf, GskBroadwayRenderer, GskBroadwayRendererLeaf, GskCairoNode, GskCairoNodeLeaf, GskCairoRenderer, GskCairoRendererLeaf, GskClipNode, GskClipNodeLeaf, GskColorNode, GskColorNodeLeaf, GskGLRenderer, GskGLRendererLeaf, GskGLShader, GskGLShaderLeaf, GskLinearGradientNode, GskLinearGradientNodeLeaf, GskNglRenderer, GskNglRendererLeaf, GskOpacityNode, GskOpacityNodeLeaf, GskRenderNode, GskRenderer, GskRepeatNode, GskRepeatNodeLeaf, GskRoundedClipNode, GskRoundedClipNodeLeaf, GskShadowNode, GskShadowNodeLeaf, GskTextNode, GskTextNodeLeaf, GskTextureNode, GskTextureNodeLeaf, GskTransformNode, GskTransformNodeLeaf + export GskColorStop, _GskColorStop, GskParseLocation, _GskParseLocation, GskRoundedRect, _GskRoundedRect, GskShadow, _GskShadow, GskTransform, GskBlendNode, GskBlendNodeLeaf, GskBlurNode, GskBlurNodeLeaf, GskBorderNode, GskBorderNodeLeaf, GskBroadwayRenderer, GskBroadwayRendererLeaf, GskCairoNode, GskCairoNodeLeaf, GskCairoRenderer, GskCairoRendererLeaf, GskClipNode, GskClipNodeLeaf, GskColorMatrixNode, GskColorMatrixNodeLeaf, GskColorNode, GskColorNodeLeaf, GskConicGradientNode, GskConicGradientNodeLeaf, GskContainerNode, GskContainerNodeLeaf, GskCrossFadeNode, GskCrossFadeNodeLeaf, GskDebugNode, GskDebugNodeLeaf, GskGLRenderer, GskGLRendererLeaf, GskGLShader, GskGLShaderLeaf, GskGLShaderNode, GskGLShaderNodeLeaf, GskInsetShadowNode, GskInsetShadowNodeLeaf, GskLinearGradientNode, GskLinearGradientNodeLeaf, GskNglRenderer, GskNglRendererLeaf, GskOpacityNode, GskOpacityNodeLeaf, GskOutsetShadowNode, GskOutsetShadowNodeLeaf, GskRadialGradientNode, GskRadialGradientNodeLeaf, GskRenderNode, GskRenderer, GskRepeatNode, GskRepeatNodeLeaf, GskRepeatingLinearGradientNode, GskRepeatingLinearGradientNodeLeaf, GskRepeatingRadialGradientNode, GskRepeatingRadialGradientNodeLeaf, GskRoundedClipNode, GskRoundedClipNodeLeaf, GskShadowNode, GskShadowNodeLeaf, GskTextNode, GskTextNodeLeaf, GskTextureNode, GskTextureNodeLeaf, GskTransformNode, GskTransformNodeLeaf end)) end diff --git a/src/gen/pango_methods b/src/gen/pango_methods index 0a96d166..a2d7cfa3 100644 --- a/src/gen/pango_methods +++ b/src/gen/pango_methods @@ -534,7 +534,7 @@ $(Expr(:toplevel, quote end function Context_new() ret = ccall(("pango_context_new", libpango), Ptr{GObject}, ()) - ret2 = convert(PangoContext, ret, true) + ret2 = PangoContextLeaf(ret, true) ret2 end function changed(instance::PangoContext) @@ -658,7 +658,7 @@ $(Expr(:toplevel, quote end function Coverage_new() ret = ccall(("pango_coverage_new", libpango), Ptr{GObject}, ()) - ret2 = convert(PangoCoverage, ret, true) + ret2 = PangoCoverageLeaf(ret, true) ret2 end function copy(instance::PangoCoverage) @@ -868,7 +868,7 @@ $(Expr(:toplevel, quote end function FontsetSimple_new(_language::PangoLanguage) ret = ccall(("pango_fontset_simple_new", libpango), Ptr{GObject}, (Ptr{PangoLanguage},), _language) - ret2 = convert(PangoFontsetSimple, ret, true) + ret2 = PangoFontsetSimpleLeaf(ret, true) ret2 end function append(instance::PangoFontsetSimple, _font::PangoFont) @@ -882,7 +882,7 @@ $(Expr(:toplevel, quote end function Layout_new(_context::PangoContext) ret = ccall(("pango_layout_new", libpango), Ptr{GObject}, (Ptr{GObject},), _context) - ret2 = convert(PangoLayout, ret, true) + ret2 = PangoLayoutLeaf(ret, true) ret2 end function deserialize(_context::PangoContext, _bytes::GBytes, _flags) diff --git a/test/gui/listviews.jl b/test/gui/listviews.jl index 00ee8947..6a9e7428 100644 --- a/test/gui/listviews.jl +++ b/test/gui/listviews.jl @@ -64,11 +64,15 @@ push!(listBox, l) l0=GtkLabel("widget 0") pushfirst!(listBox, l0) @test listBox[1].child == l0 +lmiddle=GtkLabel("widget 0.5") +insert!(listBox,2,lmiddle) +@test listBox[2].child == lmiddle + delete!(listBox, listBox[1]) -@test listBox[1].child == l +@test listBox[2].child == l listBox[1] = GtkLabel("widget 2") -@test listBox[1].child != l +@test listBox[2].child != l sw[] = listBox listBox.vexpand = true diff --git a/test/gui/misc.jl b/test/gui/misc.jl index be5e03d8..3d5bd519 100644 --- a/test/gui/misc.jl +++ b/test/gui/misc.jl @@ -156,7 +156,7 @@ b4 = GtkBuilder() push!(b4; filename="test.ui") b5 = GtkBuilder() -push!(b5; buffer=s) +Sys.WORD_SIZE == 64 && push!(b5; buffer=s) end