May 27, 2021

I think dlangui is a dead monkey.

May 28, 2021

On Thursday, 27 May 2021 at 17:04:07 UTC, Alain De Vos wrote:

>

Let's

+100000

May 28, 2021

On Friday, 28 May 2021 at 00:05:36 UTC, zjh wrote:

If there is a binding of wxWidgets.
then is good.

May 28, 2021

On Friday, 28 May 2021 at 00:07:41 UTC, zjh wrote:

>

On Friday,

maybe you can try nana.

May 28, 2021

On Thursday, 27 May 2021 at 18:57:32 UTC, Alain De Vos wrote:

>

I think dlangui is a dead monkey.

Nah, it's ok

May 28, 2021

On Thursday, 27 May 2021 at 01:17:44 UTC, someone wrote:

>

I am learning D by writing a Windows only GUI library. It is taking too much time for me since, I am writing some stuff and then happen to learn some new things about it and re-writing it.Anyhow, so far so good. This is the code now.

import winglib ;
import std.stdio : log = writeln;

void main() { 	

	auto frm = new Window() ;	
	frm.text = "Learning D By Writing D";

        // C = Control class. Window is derived from Control
        // E = EventArgs.

	frm.onMouseHover = (c, e) => log("Mouse is now on ", e.x, ", ", e.y);
	frm.onMouseLeave = (c, e) => log("Mouse leaved from window") ;	
	frm.onKeyDown =  (c, e) => log(e.keyCode, " key is pressed");
	frm.create() ;

	auto btn = new Button(frm) ;
	btn.font.name = "Calibri" ;
        btn.width = 150 ;
	btn.text = "DMD Or LDC" ;
	btn.font.size = 14 ;
	btn.create() ;

	frm.show() ;	
	
}

I am slowly adding more features to this. Till now, Window & Button are completed.

May 29, 2021

On Thursday, 27 May 2021 at 01:17:44 UTC, someone wrote:

>

Any comments are welcomed, even any comments regarding anyone experience with GUI development within D, no matter whether the answer would be relevant to my specific question seeking a choice or not.

First and foremost, thanks everybody for your replies :) !

I didn't know some of the toolkits you advised me to try even existed.

There was a lot of info for me to digest before starting answering you on some of the specifics and/or personal experience with them, so, I did my homework and make the following summary (mainly relevant to my requirements) to organize my thoughts so I could make a roadmap to start selecting/discarding toolkits, and please, let me know anything I got wrong and/or point me to anything that is plainly wrong in the following summary:

  • Microsoft MFC is a Microsoft Visual C++ wrapper around the Windows API

  • Microsoft Windows Forms for the net framework (not a Windows API wrapper)

  • Microsoft WPL (aka Windows Presentation Foundation) for the net framework 3.0 using XAML or any CLR language

  • Microsoft WinUI # 1

  • Microsoft WinUI # 2 for UWP XAML apps

  • Microsoft WinUI # 3 for UWP XAML / Win32 apps (aka Project Reunion)

  • Gnome GNUstep for Objective-C

  • Apple Cocoa for Objective-C

  • MOTIF for C is a legacy UNIX toolkit

  • libagar (aka agar) for (industry-standard ANSI X3.159-1989) C: documentation for 1.6.0, screenshots

    • supports texture and GPU acceleration wherever available
    • supports linux/freeBSD/dragonFlyBSD (at least)
  • Fox for C++: overview, plain documentation, FAQ, and screenshots

    • relies only on core system facilities and does not wrap native GUI libraries or toolkits
    • supports linux/freeBSD (at least)
    • used by the xfe file manager app
  • wxWidgets (former wxWindows) for C++: overview, excellent plain documentation, tutorials; eg: hello world app

  • arsd: simpledisplayminigui for D: plain documentation

    • simpleDisplay provides basic cross-platform GUI-related functionality: creating windows, drawing on them, working with the clipboard, timers, openGL, and more; but, does not provide high-level GUI widgets
    • simpleDisplay does not have any dependencies outside the OS and color.d
    • simpleDisplay should support UniCode and i18n internationalization since its written in D to begin with (my assumption)
    • miniGUI primary goal is to be useful without being large and complicated (like GTK and/or QT) and it isn't hugely concerned with appearance
    • miniGUI keeps it simple on linux: some controls can be customized with CSS-inspired Widget.Style classes
    • miniGUI supports the native controls/themes on Windows
    • miniGUI supports creating widget trees at runtime from XML with arsd.minigui_xml
    • miniGUI requirements are arsd.simpledisplay and arsd.color dependencies on which it is built: nothing more
    • miniGUI had mostly additive changes or bug fixes since its inception until 05-2021
    • miniGUI should support UniCode and i18n internationalization since its written in D to begin with (my assumption)
  • dlangUI for D: documentation, tutorials, and screenshots

    • it is a major-refactored port of the Cool Reader app project for C++
    • supports openGL based acceleration: fallbacks to pure Win32 API / SDL / X11 when the openGL library is not available and/or cannot be loaded
    • supports highly-customizable styles and themes
    • supports UniCode and i18n internationalization
    • requirements: DMD ≥ 2.077
    • requirements: third-party: DerelictGL3 for OpenGL support
    • requirements: third-party: DerelictFT and FreeType library support under linux and optionally under Windows
    • requirements: third-party: DerelictFI and FreeImage library support for image decoding
    • requirements: third-party: DerelictSDL2 and SDL2 for cross platform support
    • requirements: third-party: XCB and X11 bindings (patched) when SDL2 is not used
    • first-impressions: seems abandoned
  • Gnome GTK+ (former GIMP ToolKit) for C (using GObject library targeting Glib) (currently using Cairo)

    • primarily targeting the X-Windows system
    • used in Gnome, LXDE, XFCE, MATE, Cinamon
    • used by Marco, Mutter, Xfwm (and some more) window managers
  • QT is for C++

    • primarily targeting the X-Windows system or Wayland
    • used in KDE, LXQT, Lumina, Unity
    • QT has removed LTS from the OSS community plainly admitting they want us to be their beta testers and that paid commercial users are the only ones who deserve stability
  • Elementary for C

    • part of EFL (aka Elementary Foundation Libraries)
  • sciter: is an embeddable HTML/CSS/JavaScript engine for modern UI development

    • still need to research it: left it as the last one because it seems it is the opposite of what I am looking for

At first glance, but that could end quite differently, possible ones are (ordering not standing): dlangUI and arsd.miniGUI written in D, agar written in C, Fox and wxWidgets written in C++.

Regarding dlangUI: its a shame if it was really abandoned ... does someone seriously considered forking it ? Or is it pointless since it needs a lot of human resources that are not there to begin with which is what I suspect ?

May 29, 2021

On Thursday, 27 May 2021 at 02:55:14 UTC, Adam D. Ruppe wrote:

>

http://arsdnet.net/minigui-linux.png
http://arsdnet.net/minigui-sprite.png

Thanks a lot for your info :) !

I want you to know that I am replying to myself on the first post summarizing what I already learned researching the subject starting with the tips provided by you as well as anyone else that replied to my post. Please, if you want and have the time, check my last post and let me know anything I got wrong.

May 29, 2021

On Thursday, 27 May 2021 at 07:00:32 UTC, Imperatorn wrote:

>

I would like to recommend DlangUI [1], but we have tried now for months to get in contact with the owner of it (to take over development) and are getting no reponse.

Thanks a lot for your info :) !

I want you to know that I am replying to myself on the first post summarizing what I already learned researching the subject starting with the tips provided by you as well as anyone else that replied to my post. Please, if you want and have the time, check my last post and let me know anything I got wrong.

May 29, 2021

On Thursday, 27 May 2021 at 07:20:17 UTC, zjh wrote:

>

I have download FOX.and success compile.
I think it is very good.small and beauty.

Thanks a lot for your info :) !

I want you to know that I am replying to myself on the first post summarizing what I already learned researching the subject starting with the tips provided by you as well as anyone else that replied to my post. Please, if you want and have the time, check my last post and let me know anything I got wrong.