Post A08FCJWXSC9Fq8zP9M by nahuelwexd@mastodon.social
(DIR) More posts by nahuelwexd@mastodon.social
(DIR) Post #A08FADh0ABH3AwsvPU by brainblasted@social.libre.fi
2020-10-13T20:03:02.083705Z
2 likes, 2 repeats
I highly recommend anyone getting started with GTK/GNOME app development starts with GTK4 at this point. GTK4 performs better, makes it easier to make custom widgets, and simplifies a lot of things that were more complex before.If you start with GTK4, you also won't need to worry about porting later :)
(DIR) Post #A08FCISbPLPCXe8kNM by oct2pus@catgirl.science
2020-10-13T20:20:45.279598Z
0 likes, 0 repeats
@brainblasted what binds are currently up to date for gtk4 that you know about?
(DIR) Post #A08FCIh8XJ21GiwM1w by brainblasted@social.libre.fi
2020-10-13T20:33:40.531849Z
0 likes, 0 repeats
@oct2pus I believe the Vala “bindings” work out of the box currently. I know @nahuelwexd is working on an app using GTK4 and Vala. @bilelmoussaoui has been updating the Rust bindings (not landed upstream yet), and I’ve been testing them by porting my apps.
(DIR) Post #A08FCIuFkXWVvP4pTU by nahuelwexd@mastodon.social
2020-10-13T20:43:49Z
0 likes, 0 repeats
@brainblasted @oct2pus @bilelmoussaoui There's also "non-official" (but very cool) bindings for Node.js that are already working with GTK 4They are still missing a lot of GObject specific functionalities, but they work quite wellhttps://github.com/romgrk/node-gtk
(DIR) Post #A08FCJ2PGE2sKgtLBQ by brainblasted@social.libre.fi
2020-10-13T20:44:25.956329Z
0 likes, 0 repeats
@nahuelwexd @oct2pus @bilelmoussaoui that makes me wonder - are the GJS bindings also an option atm?
(DIR) Post #A08FCJWXSC9Fq8zP9M by nahuelwexd@mastodon.social
2020-10-13T20:46:47Z
0 likes, 0 repeats
@brainblasted @oct2pus @bilelmoussaoui In a while I'll check if they work, if nobody answers before
(DIR) Post #A08FCJhsm1DqPKISpc by exalm@floss.social
2020-10-13T21:49:59Z
1 likes, 0 repeats
@nahuelwexd @brainblasted @oct2pus @bilelmoussaoui I think it works, I remember florian mentioning something before.
(DIR) Post #A08VebEgnCfQ9F9Mjw by brainblasted@social.libre.fi
2020-10-14T00:48:51.928565Z
1 likes, 0 repeats
Another thing about testing GTK4 right now: you can help find bugs before they effect real users :)
(DIR) Post #A08pfJTLGnbw6c33Ue by cy@fedicy.allowed.org
2020-10-14T04:39:21.033295Z
0 likes, 0 repeats
@brainblasted I can’t find anything showcasing the differences between GTK3 and GTK4.
(DIR) Post #A08sJsziomxJlefTzk by brainblasted@social.libre.fi
2020-10-14T04:39:55.949142Z
0 likes, 0 repeats
@cy https://gnome.pages.gitlab.gnome.org/gtk/gtk/gtk-migrating-3-to-4.html
(DIR) Post #A08sJtZWffazYhQ4no by cy@fedicy.allowed.org
2020-10-14T05:09:05.898035Z
0 likes, 0 repeats
@brainblasted Thanks… I don’t know why I couldn’t find that on a search engine.Seems fairly straightforward. Though making GdkEvent structs opaque sounds like a dumb idea. Taking away fill/expand is troublesome, but I can see why it might eat CPU to calculate that. Not sure how “event controllers” are supposed to tell you what widget was focused when a key was pressed, but I’m sure there’s a way. Ugh… “Set a proper application ID” applications are such bullshit.Anyway, thanks for the head’s up.
(DIR) Post #A08sKBmwwV1q3Xq3E0 by brainblasted@social.libre.fi
2020-10-14T04:46:16.370960Z
1 likes, 1 repeats
@cy See also: https://wiki.gnome.org/Projects/GTK/Roadmap/GTK4
(DIR) Post #A09zMnfbxq0QxbYfGS by ebassi@mastodon.social
2020-10-14T10:30:18Z
0 likes, 0 repeats
@cy @brainblasted Poking GdkEvent structures directly is the generally dumb approach, and people should not do that with GTK3 right now; but for GTK4, event handling is done with gesture objects and event controllers, so it's unlikely you'll deal with event structures to begin with.Also, "applications" are applications, not bullshit. Strange binaries lying in ponds, distributing windows, is not a basis for a desktop environment.
(DIR) Post #A09zMranNgWx7pKsJU by cy@fedicy.allowed.org
2020-10-14T18:02:43.710400Z
0 likes, 0 repeats
@ebassi @brainblasted Poking GdkEvent structures directly is the generally dumb approachDumb ideas are bad. Dumb interfaces are good. Dumb is simple. Simple works. You only want to be sophisticated when being dumb does not work. And even then you can usually still be dumb in other cases. The only reason not to expose GdkEvent structures directly is if GTK cannot use GdkEvent structures internally anymore, for some reason.for GTK4, event handling is done with gesture objects and event controllers, so it’s unlikely you’ll deal with event structures to begin with.Gesture objects? You mean like… mouse gestures? As in the worst most aggravating way to communicate with a computer since speech recognition?Strange binaries lying in ponds, distributing windows, is not a basis for a desktop environment.Yeah, because what we want is our libraries to limit us and restrict us, so that we cannot do what we want to do. “Applications” as far as I’ve seen dramatically increase the complexity of a program simply by depending on a working dbus system to be properly configured and activated. They make you communicate over RPC, when all you want is not to launch a second instance of the program. And if you do want to launch a second instance, well tough luck buddy! Should have thought of that before using Applications!I mean all those problems could be ironed out with effort, but… this holier than thou attitude that increased formality is always better than just doing what works regardless of the wishes of the lesser people is exactly what’s driving software bloat into the stratosphere.So yeah I don’t much like “Applications.” They feel like an idea thought up by Apple sales managers, not programmers.
(DIR) Post #A09zNAVT3iYfmnzO9A by brainblasted@social.libre.fi
2020-10-14T05:10:54.897202Z
1 likes, 0 repeats
@cy fill/expand is now GTK_ALIGN_FILL and hexpand/vexpand on the widget itself. It works the same in GTK3 - you can minimize porting work by transitioning from the child properties to those.
(DIR) Post #A0A3K6k4zvVB3jcUGe by ebassi@mastodon.social
2020-10-14T18:08:42Z
0 likes, 0 repeats
@cy @brainblasted The amount of questionable stuff here is pretty high.GdkEvents have accessor functions, because direct access to field structures limits ABI and API compatibility.Gestures are delegate objects that deal with event sequences.Applications can be single or multiple instances, and abstract the complexity of modern desktop requirements.The rest of the word vomit doesn't make me want to answer any further; go read the API reference instead of venting dumb opinions.
(DIR) Post #A0A3K6vmIQrLe15pVA by cy@fedicy.allowed.org
2020-10-14T18:47:06.749338Z
0 likes, 0 repeats
@ebassi @brainblasted abstract the complexity of modern desktop requirements.Honestly I use openbox. My “modern desktop requirement” is that programs make windows, and maybe put an indicator in the system tray, which Gnome has deemed blasphemous. So not everyone has the same requirements, and for some of us there isn’t that much complexity to abstract. I mean what exactly are you abstracting here, if your application is multi-instance?go read the API reference instead of venting dumb opinions.I don’t really think any API is going to enlighten me on how “this holier than thou attitude that increased formality is always better than just doing what works regardless of the wishes of the lesser people” is actually a good thing. I didn’t have much other word vomit, that I noticed at least. Thanks for the suggestion, though. direct access to field structures limits ABI and API compatibility.How often do GdkEvent structures change? I mean if they do change a lot then yes accessor functions are better, or standardized structs that get filled in with the internal info just for the callback. I hadn’t thought they were particularly unstable though.Gestures are delegate objects that deal with event sequences.Well okay, as long as it’s not mouse gestures. I hate those things almost as much as I hate trackpads.