Whither DWT?

Anders F Björklund afb at algonet.se
Wed Apr 19 15:45:06 PDT 2006

Charles Hixson wrote:

>> I guess the community needs to decide exactly what it would like from a
>> GUI/Framework.
>> Are we looking for
>> Portability to multiple platforms?

> -- 
> Work in progress
> [...]

BTW; Thunderbird hated this start, it thought your post was one big sig?

> From my personal perspective, it needs to work well on my personal system,
> which runs Linux.  It also needs to be easy to set up (or come with the
> compiler), because I'm not *committed* to D.  I just want to get my project
> done, and D would be a nice tool.
> In the longer term, I would also want the GUI to work on the Mac.  I'm
> indifferent to MSWind, but I'm fairly certain that it would happen if it
> were at all feasible, so that doesn't need much thought.

wxD is intended for Linux (GTK+), Mac OS X (Carbon), as well as Windows.

> Better to start with a simple framework that can later be expanded, and get
> it working WELL.  (Simple means being able to do dialog boxes.  Ability to
> use input from a GUI builder, like glade, or SpecTCL would be a real plus,
> no question, but is LESS necessary that having a solid system.)

For wxWidgets, there are several editors for the XML-based "XRC" format.
One (from the wx author) is: http://www.anthemion.co.uk/dialogblocks/

> For my personal interest, I would like an enhanced version to be able to
> draw on canvases, display pictures from multiple file formats (including
> animated gifs), do sound, etc.  I don't think of these as features that
> should be present in the original version...even though without them I
> would need to find a different language.

wxD comes with both several image formats, and support for sound (0.05)
And drawing on canvases is supported, as well as using OpenGL canvases.

> KISS is a really good motto.

wxD is somewhat huge, but most of the code is rather straight-forward.
(not counting some of the voodoo going on with events and such tricks)

Some complexity comes from the mish-mash of languages used, though...

> Another good feature would be documentation that says exactly which features
> are supposed to be working.  I looked over wxD, and found it interesting,
> but the only way to find out what was expected to be working would appear
> to be to install it and try.  In this respect a well annotated stress test
> setup would be very useful.  (Think of DStress as a checklist of what is
> working in D.  It's not good user documentation, but it would be a good
> basis for automatic creation of a status page of user documentation. 
> [Maybe it does that...I've been looking at so many options I've rather lost
> track.])

I've been working on such a list for wxD 0.05, but it's a lot of demos 
and I'm testing them on three platforms - so it amounts to some work...

I've also started on some minor docs, like http://wxd.sf.net/Hello.html
and with adding some API docs with Doxygen, like http://wxd.sf.net/docs/
In the long run there needs to be a tutorial or longer documentation,
explaining how to get started - with more words than just a Readme...

Also interesting would be a list of all available widgets, like SWT has:
http://www.eclipse.org/swt/widgets/, even if it's the same as wxWidgets.
There are a lot, especially when including all of http://wxcode.sf.net/,
since most of the C++ wxWidgets can be ported over to D if needed to be.

> Also needed is a good way to report bugs.  I think the capability for this
> is built into dsource, though I haven't tried to use it, since mainly I've
> been studying and evaluating rather than developing.

If you mean reporting wxD bugs, there should be a link on the home page:


> I would have liked it a lot if I had been able to choose D, but it looks to
> be too green yet, and this is mainly the libraries, but not entirely. 
> E.g., when I tried dmd -o test test.d `gtk-config --libs` the compiler
> complained about the -l files.  Not good.  I might have checked out gcd,
> but there were other problems that ruled D out of the running, so I didn't
> bother.

The *-config scripts output stuff in GCC format, so you need to use GDC
- or feed it through some kind of preprocessing filter for DMD syntax...
I ended up hardcoding DMs Makefile, and using wx-config for GNUmakefile.
But I had to use "gcc" for the actual linking, not the "dmd" command ?

AFAIK: DMC/DMD doesn't do shared libraries, but for the GNU platforms
at least wxWidgets is possible to link as shared (if wanted), for wxD.


I think that wxD could serve as a GUI for D.
At least until something better is ready...

It's just an "alpha" in terms of stability,
but then again so is the D language itself ?


More information about the Digitalmars-d-dwt mailing list