We are working internally on a "wxc" based wrapper for wxWidgets. "wxc" is a C wrapper/interface which was created for "wxHaskell" and is also used by D-Lang and Rust.
It can open a Window, place some simple widgets, create dialogs, the menu and set up handlers for their actions. It also can close everything again without killing kittens.
But it is far from completion and only tested of OS X (though windows and linux should work already).
Currently it's more an experiment to see if it works and what we want to do to "wrap" the functionality in Nim. Actually I am happy that we got it to work so far :)
I am not yet sure how I want to continue and if and in which state I want to make it public. We are currently very busy with other stuff and Nim has much lower priority till we finish that.
@Araq said that he made an (also wxc based) wrapper in the past (with c2nim I guess) and @def- was thinking about doing something with the new c++ facilities of Nim. Later one would be really cool but I think thats all a lot of work.
I've currently developing this wrapper for Qt QML
https://github.com/filcuc/DOtherSide
documentation is here:
http://filcuc.github.io/DOtherSide/
you can install it through nimble by typing nimble install nimqml
@filcuc I'm intrigued, will keep an eye on that. @OderWat thanks for the info, curious to see your examples in the future @GravityWell I see it on the /lib.html page, but I've never heard of it or seen any examples so I sort of bypassed it for the moment, may check it out eventually since it's already ported though. @Stefan, I'm on windows and never really had much success with GTK outside of nim
Thanks for the responses.
Of course, GTK3 is generally cross-platform, but not with native look and much support on Windows and Mac.
That's actually not much of an issue for Aporia where we use the dialogs module to get the native Windows file selector dialogs.
@G4MR As you are on Windows you may try to get "wxHaskell" compiling and generate a v3 wxWidgets wxc version for that.
If you have a wxc.dll I can send you (privately) some code to test or add you to our private repository on GitHub. I will eventually support Windows, as this is our Target and wxWidgets is "a must" because of the native look & feel (which is a problem for our clients with GTKx).
@OderWat do wxWidgets provide a more native look & feel than GTK? I hope that you will release the wrapper as open source code at some point so that everyone can benefit btw
@G4MR I would say that gtk2 is your best bet currently. It's the only well tested GUI toolkit in Nim after all.
@dom96 wxWidgets is about as close to native as you can get.
It actually is implemented with using the native GUI API on OS X and Windows and uses GTK on Linux (which could be called native too). I guess one could say wxWidgets is an abstraction layer. Not every functionality is available everywhere though. Like Windows Taskbar Icons for example. But it does a fairly well job in providing system related alternatives or have stuff optional and you decide if you want to use it.
We are going to release the code to the public eventually. Probably with the most open license: MIT if possible, I have to check with wxWidgets and wxHaskell. But I want it at least to work on all three platforms and have more than just some toy examples and memory leaks all over the place :)
@avsej We are still working on that but actually currently more on the application logic and other modules (ORM) itself than on the wxWidgets module. Most stuff is still proof of concept though.
We decided to just implement whats needed for that specific application though. That will leave out a lot of stuff which kinda cries to open-source it later so others can fill in the gaps they need for their own stuff. We have it compiling on Windows / Linux and OS X and some pretty (too) simple examples.
But right now I plan on prototyping the application GUI with wxGlade (targeting Python) and I was thinking about letting wxGlade create Nim Code targeting our module. Which would be great if it works as I hope it will.
But I can't tell you when we will publish anything and I would not bet on it happening this year. It is still a side project of us right now. Our main clients just eat up so much resources and it is really hard to get new people for that too :(.
How about Nim -> JavaScript and run on Electron?
Electron right now is best Framework ever , works on all Destkop OS , supports all HTML5 features , Cross Platform Windows Transulancy , notifications , desktray , Audio , Videio , WebGL , whatelse?
Just an example to integrate Nim-to-javascript and everything will be perfect. Write CPU extensive backend stuff in Nim-native and , for UI use Nim-Javascript.