On Saturday, 25 March 2023 at 10:03:29 UTC, Ikey Doherty wrote:
> Most of the time I've been a backend engineer. However at times I do need to write an app, and usually I go with Gtk.
However, I'm a bit concerned that gtk-d seems .. well, catatonic. DWT also appears to be beyond life support.
We all know Rust has iced-rs, which due to the design of Rust has had to adopt the Elm paradigm.
D, with features that honestly don't need reiterating, could trivially manage OOP, ECS, mixins...
Is there general interest in UI within the D community? And is there enough to have our own toolkit, or would we be better placed to contribute to the likes of gtk-d?
I have a selfish interest in this, hence asking. While spinning a ui toolkit isn't hard, doing it properly can be (accessibility)
I would love to see a UI framework in D, and I came to the same conclusion about gtk-d.
That's why I am trying to build one myself. But as you said, doing one right is hard, especially for me (someone with very few experience in GUI toolkit, and because I chose the hard mode by picking Vulkan + Software rendering as the two backends for the lib).
I like how the Widget API I wrote looks, but without rendering working properly, I can't say my work is very useful.
Application app = new Application("com.dadoum.example", ApplicationFlags.unique);
app.activated ~= (args) {
writefln!("Activated ! (%-(%s %)) %d %s")(args, args.length, args[1]);
};
Button btn;
Filter filter;
Window w = new Window("Example")
.set!(Window.size)(400, 800)
/+.set!(Window.resizeable)(false)+/ [
new Stack() [
new Column() [
new Paragraph() [
"Use ", new Link("https://github.com/Dadoum/super_forms", "super_.forms"), " !"
],
new Button("click here !").bind!(btn)
],
new Filter()
.set!(Widget.visible)(false)
.bind!(filter) [
new Fixed() [
new Text("You clicked !")
.set!(Child!Fixed.x)(20)
]
],
]
];
w.closed ~= () => app.exit(0);
w.show();