Sign up

Porting C GObject/GTK application to gtkD

After decades of working with GObject and GTK in C, I'm finally making the decision to use a real object oriented language. This is however a few years into a real-time software synthesizer project. I previously toyed with this idea even when I was starting the project, but wasn't satisfied with the available options. However, I didn't investigate dlang at the time. Now that I see what it has to offer, I wish I'd known about it then!

So now that gtkD and dlang seem like the obvious choice to me, I'm now looking at porting my application. It is very object oriented using GObject for the underlying core (non-GUI) code built as a library and has many custom GTK widgets for the GUI side.

I figured since I'm doing such a port, I may as well also transition to GTK4. To this end I was able to build the gtk4 branch of gtkD which is promising and I plan on contributing however I can in bringing this to a releasable state. It seems like a lot of what is missing is porting the examples to GTK4, which I started to do as an exercise. Does anyone have any tips on how to best contribute to this effort?

As for porting my application, my main question is in regards to whether to continue to utilize GObject for my core non-gui library. I really like the property system of GObject for defining properties, their ranges, etc and have heavily used this in conjunction with libjson-glibc for serializing/de-serializing objects to/from JSON for the file format the program uses. I also was planning on providing a Python shell in the application with an API binding, which GObject introspection provides almost for free. However, I don't plan on really adding any other bindings, so I'm not attached to using GObject, especially as there is likely less need for it with dlang. Any input on this decision process would be greatly appreciated!

I know it is a long road ahead with this project, but so far it seems worth it, and seeing what dlang looks like in conjunction with gtkD is like a breath of fresh air!

Re: Porting C GObject/GTK application to gtkD

On Thu, 23 Mar 2023 04:19:13 GMT, Element Green wrote:
I can in bringing this to a releasable state. It seems like a lot of what is missing is porting the examples to GTK4, which I started to do as an exercise. Does anyone have any tips on how to best contribute to this effort?

Glad to see someone around! The best is to get familiar with the GtkD GitHub repository - https://github.com/gtkd-developers/GtkD - submit PRs, issues, etc.

Re: Porting C GObject/GTK application to gtkD

On Thu, 23 Mar 2023 18:11:28 GMT, Dejan Lekic wrote:

On Thu, 23 Mar 2023 04:19:13 GMT, Element Green wrote:
I can in bringing this to a releasable state. It seems like a lot of what is missing is porting the examples to GTK4, which I started to do as an exercise. Does anyone have any tips on how to best contribute to this effort?

Glad to see someone around! The best is to get familiar with the GtkD GitHub repository - https://github.com/gtkd-developers/GtkD - submit PRs, issues, etc.

Missed this reply until now.. I completed the port of the non-GUI portion of my application and am now starting on the GUI. I will follow your advice and get familiar with the code base and submit PRs when I have something useful.