www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - GUI library for Windows with static binding

reply blueberry <enactus-bs outlook.de> writes:
Hello folks! :)

I am a software engineer and started recently working with D; I 
really love the design of the language!

Now, for a current project of mine, I am having a very special 
constraint. I need to create a tiny client-desktop application 
for the Windows platform, which shall be shipped as a single 
executable only. So far, I have tried out different GUI libs 
available for D, however all of them rely on dynamic binding, 
i.e. I would need to ship the executable together with DLLs. Is 
there any solution for this?

Best,
blueberry
May 01 2023
next sibling parent Commander <no no.no> writes:
On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:
 Hello folks! :)

 I am a software engineer and started recently working with D; I 
 really love the design of the language!

 Now, for a current project of mine, I am having a very special 
 constraint. I need to create a tiny client-desktop application 
 for the Windows platform, which shall be shipped as a single 
 executable only. So far, I have tried out different GUI libs 
 available for D, however all of them rely on dynamic binding, 
 i.e. I would need to ship the executable together with DLLs. Is 
 there any solution for this?

 Best,
 blueberry
webview2 or windows api directly. or statically link any c or c++ solution
May 01 2023
prev sibling next sibling parent Adam D Ruppe <destructionator gmail.com> writes:
On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:
 I need to create a tiny client-desktop application for the 
 Windows platform, which shall be shipped as a single executable 
 only.
My minigui.d can do that pretty easily, built mostly on normal Windows controls. https://code.dlang.org/packages/arsd-official%3Aminigui https://github.com/adamdruppe/arsd (git clone it then use dmd -i for best results, but you can also get the individual files needed for just this: color.d, simpledisplay.d, minigui.d, textlayouter.d, core.d) http://arsd-official.dpldocs.info/arsd.minigui.html There's also a webview wrapper for it if you wanted to but prolly don't need it for a tiny simple thing. Some parts of it are a bit weird to use but you can ask me for some help to get started.
May 01 2023
prev sibling next sibling parent reply sai <sai tmp.com> writes:
On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:
 Hello folks! :)

 I am a software engineer and started recently working with D; I 
 really love the design of the language!

 Now, for a current project of mine, I am having a very special 
 constraint. I need to create a tiny client-desktop application 
 for the Windows platform, which shall be shipped as a single 
 executable only. So far, I have tried out different GUI libs 
 available for D, however all of them rely on dynamic binding, 
 i.e. I would need to ship the executable together with DLLs. Is 
 there any solution for this?

 Best,
 blueberry
I am in a similar boat. Requirements: Small GUI apps on Windows. Absolutely no dynamic or runtime libs (dlls, etc). All files must be statically linked/packaged into a self contained executable. Need to develop apps really really fast. Small size preferable, but not a must. Should have very good documentation, I should not have to see the library source code. Some solutions that worked for me are: 1) Dlang + DWT. I feel that DWT is very mature, has lots of widgets (since its port of SWT), has very good configurability. (like easy to change font sizes, image + text in buttons, almost no crashes from bugs, etc). Tonnes of documentation and examples on web (very important). I love this option so much that I am even trying to port latest SWT to D. But 600 java classes just for SWT is no joke. Currently exploring if I can use JavaParser to automate this. 2) Python + Tkinter or PySimpleGui + PyInstaller + auto_py_to_exe To create a standalone executable. Like it or not, more people know Python than D, so more preferable when working with colleagues. Executable size is 5mb larger, large but not bad. PySimpleGui is fun. 3) C++ + Ultimate++ Nice all in one package, including compiler. But C++. Error messages are wild especially when using templates. 4) Bundle Java app + JRE runtime with Jlink. Very large bundle, runs in 30-40MB. But I can use Netbeans + swing + Gui builder ... small app development done in minutes! Even with complicated layouts. For some reason I never liked using browser or webview, etc. Mucking with HTML, javascript, etc makes me lose interest quickly.
May 01 2023
next sibling parent sai <sai tmp.com> writes:
On Monday, 1 May 2023 at 19:22:41 UTC, sai wrote:
 On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:
 [...]
I am in a similar boat. Requirements: Small GUI apps on Windows. Absolutely no dynamic or runtime libs (dlls, etc). All files must be statically linked/packaged into a self contained executable. Need to develop apps really really fast. Small size preferable, but not a must. Should have very good documentation, I should not have to see the library source code. [...]
For option-2, I can even use Cython to hide my top secret business logic, works very well.
May 01 2023
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On Monday, 1 May 2023 at 19:22:41 UTC, sai wrote:

 1) Dlang + DWT.
 I love this option so much that I am even trying to port latest 
 SWT to D. But 600 java classes just for SWT is no joke. 
 Currently exploring if I can use JavaParser to automate this.
I started creating a tool for this, many years ago: https://github.com/d-widget-toolkit/jport. -- /Jacob Carlborg
May 03 2023
prev sibling parent reply Daniel X <redapple82570 gmail.com> writes:
On Monday, 1 May 2023 at 19:22:41 UTC, sai wrote:
 Requirements: Small GUI apps on Windows. Absolutely no dynamic 
 or runtime libs (dlls, etc). All files must be statically 
 linked/packaged into a self contained executable. Need to 
 develop apps really really fast. Small size preferable, but not 
 a must. Should have very good documentation, I should not have 
 to see the library source code.
For you specifically, Delphi or FPC/Lazarus would be the clear winners - no fuss, rapid Windows development, self-contained and small .exe results. It is however, a matter of whether you can tolerate the downgrade to a relatively primitive language ...
Jun 09 2023
parent user <user tmp.com> writes:
On Friday, 9 June 2023 at 16:44:26 UTC, Daniel X wrote:
 On Monday, 1 May 2023 at 19:22:41 UTC, sai wrote:
 Requirements: Small GUI apps on Windows. Absolutely no dynamic 
 or runtime libs (dlls, etc). All files must be statically 
 linked/packaged into a self contained executable. Need to 
 develop apps really really fast. Small size preferable, but 
 not a must. Should have very good documentation, I should not 
 have to see the library source code.
For you specifically, Delphi or FPC/Lazarus would be the clear winners - no fuss, rapid Windows development, self-contained and small .exe results. It is however, a matter of whether you can tolerate the downgrade to a relatively primitive language ...
Replying to an old message, but since then I found a perfect solution that works for me: Ultimate++ (U++): https://www.ultimatepp.org/ It's in C++ and a self-contained zip file, including compiler, libs and IDE.
Jan 10
prev sibling parent Ogi <ogion.art gmail.com> writes:
On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:
 I need to create a tiny client-desktop application for the 
 Windows platform, which shall be shipped as a single executable 
 only.
I’m currently working on [bindings to NAppGUI](https://github.com/Ogi-kun/nappgui/tree/master). Seems to be just what you need.
May 03 2023