www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - giD v0.9.5: GStreamer, json-glib, libadw, and libpanel bindings;

reply Element Green <element kymorphia.com> writes:
[giD](https://gid.dub.pm) v0.9.5 has now been released which adds 
several additional bindings with the total library count now over 
60 with [high API 
coverage](https://github.com/Kymorphia/gid/blob/main/report.txt).

**New bindings include:**

  * [GStreamer](https://gstreamer.freedesktop.org/) libraries - 
Powerful multimedia streaming library
  * 
[Adw](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/) 
- Building blocks for modern Gnome applications using Gtk4
  * [Panel](https://github.com/GNOME/libpanel) - Dock/panel 
library for Gtk4 and Adw for developing IDE and other similar 
applications with dynamic interfaces
  * [json-glib](https://github.com/GNOME/json-glib) - JSON 
reading/writing library

**Other changes:**

  * Variable arguments with signal handler callbacks. Only those 
arguments which are needed, in sequence, can be specified in the 
callback.
  * Derived object types can be used for signal handler arguments.
  * Add self property for with statement convenience, when using a 
newly created object as the with subject.
  * Object memory management improvements which fixes memory leaks 
and potential use after free issues.
  * Many other bug fixes, documentation, and binding improvements.

The [API Documentation](https://www.kymorphia.com/gid) has been 
greatly improved and the search feature has been fixed.

[gid-gtk4-examples](https://gid-gtk4-examples.dub.pm) has been 
updated to include some workarounds for memory leak issues and 
GError exception handling.
Mar 30
next sibling parent Andrea Fontana <nospam example.com> writes:
On Monday, 31 March 2025 at 01:22:12 UTC, Element Green wrote:
 [giD](https://gid.dub.pm) v0.9.5 has now been released which 
 adds several additional bindings with the total library count 
 now over 60 with [high API 
 coverage](https://github.com/Kymorphia/gid/blob/main/report.txt).
Wow! Well done! Andrea
Mar 31
prev sibling next sibling parent Dejan Lekic <dejan.lekic gmail.com> writes:
On Monday, 31 March 2025 at 01:22:12 UTC, Element Green wrote:
 [giD](https://gid.dub.pm) v0.9.5 has now been released which 
 adds several additional bindings with the total library count 
 now over 60 with [high API 
 coverage](https://github.com/Kymorphia/gid/blob/main/report.txt).
Good job, as always!!
Mar 31
prev sibling parent reply Ian <ian iangarcia.net> writes:
On Monday, 31 March 2025 at 01:22:12 UTC, Element Green wrote:
 [giD](https://gid.dub.pm) v0.9.5 has now been released which 
 adds several additional bindings with the total library count 
 now over 60 with [high API 
 coverage](https://github.com/Kymorphia/gid/blob/main/report.txt).
This is amazing. Thank you! Would you say GTK4 is already usable? It should be judging from the example, but just checking if you think it's still missing large chunks or will have large breaking changes.
Apr 08
next sibling parent Dejan Lekic <dejan.lekic gmail.com> writes:
On Tuesday, 8 April 2025 at 16:57:02 UTC, Ian wrote:
 Would you say GTK4 is already usable? It should be judging from 
 the example, but just checking if you think it's still missing 
 large chunks or will have large breaking changes.
It is 100% usable. giD has Adwaita too if you like it (Element merged my PR a month ago). There could be some breaking changes until v1 is released, but nothing major I think. GTK4 examples: https://github.com/Kymorphia/gid-gtk4-examples/ Some more giddy (nickname for giD) examples are available here: https://codeberg.org/dejan/gid-examples (Adwaita, VTE, GtkSource, RSvg, Soup) Here is a tiny terminal application I am working on: https://codeberg.org/dejan/dterm Feel free to ask any questions either on https://github.com/Kymorphia/gid/discussions/categories/general or here. I am also available on IRC, nickname "Dejan".
Apr 09
prev sibling parent Element Green <element kymorphia.com> writes:
On Tuesday, 8 April 2025 at 16:57:02 UTC, Ian wrote:
 On Monday, 31 March 2025 at 01:22:12 UTC, Element Green wrote:
 [giD](https://gid.dub.pm) v0.9.5 has now been released which 
 adds several additional bindings with the total library count 
 now over 60 with [high API 
 coverage](https://github.com/Kymorphia/gid/blob/main/report.txt).
This is amazing. Thank you! Would you say GTK4 is already usable? It should be judging from the example, but just checking if you think it's still missing large chunks or will have large breaking changes.
As Dejan said, gid:gtk4 support has a very high [API coverage](https://github.com/Kymorphia/gid/blob/main/report.txt) (99.6% method coverage currently) and is very usable. You can see a list of unsupported APIs in the linked report.txt. gid:gtk3 actually has better coverage and support for Gtk3 than gtk-d does as well. Having said that, we do consider the API to be unstable at the moment, hence the < 1.x version. The most recent release (v0.9.6) adds GObject property method support and did some significant renames to be more consistent (VariantG -> Variant, ObjectG -> ObjectWrap, etc) for example. Having said that, at this point I don't expect any major API breaking changes and we are nearing a 1.x release. At which point, the API will be kept as stable as possible within a major version. There are still areas that [gidgen](https://gidgen.dub.pm) does not support with respect to GIR APIs, such as GObject "virtual class" methods, and certain data type/ownership scenarios. Bindings for such APIs (though few) could be created manually or support added as needed. Virtual class method support will be added in the next release, though I have seldom used those, since there are typically alternative ways to execute them, since they are often connected to signals or used only when implementing a native GObject. More unit tests and user testing is also needed before I feel more confident there aren't any bugs or memory leaks. But I have been using it in a port of a rather large commercial audio synthesizer project [Kymorphia Alkimiya](https://www.kymorphia.com/products/alkimiya/index.html) with great success for a while now (website is a bit dated as it is still WIP), which was my original inspiration for creating giD.
Apr 21