Thread overview
D for commercial Win32 GUI app
Jul 21, 2005
Tim Laurent
Jul 21, 2005
Stewart Gordon
Jul 22, 2005
Tim Laurent
Jul 22, 2005
Hasan Aljudy
Jul 21, 2005
Andrew Fedoniouk
Jul 22, 2005
Tim Laurent
Jul 23, 2005
Andrew Fedoniouk
Jul 22, 2005
Tim Laurent
Jul 23, 2005
Andrew Fedoniouk
July 21, 2005
Hi,

I need to develop a Win32 GUI client application that should not exceed 300 KB in size and should not depend on any external .DLL files. I have never done any Win32 programming before. I am familiar with wxWidgets, Java Swing and WinForms.

Many seem to dislike MFC, and some use WTL. Since I have no Win32 or MFC programming experience, I am not sure if I should spend any time experimenting with the WTL at all.

D to the rescue? After some experimentation, I have come to the conclusion that D is definitely one of my very favorite programming languages.

I have also discovered DFL and Harmonia. Their resulting executables both fit my space requirements and both toolkits are nothing but amazing  (Harmonia's performance is just incredible!).

However, I am a little bit worried about the stability and "maturity" of these toolkits.

Has anyone used either of them successfully in a commercial project?

Thanks,

-Tim
July 21, 2005
Tim Laurent wrote:
<snip>
> I have also discovered DFL and Harmonia. Their resulting executables both fit my space requirements and both toolkits are nothing but amazing  (Harmonia's performance is just incredible!).
> 
> However, I am a little bit worried about the stability and "maturity" of these toolkits.
<snip>

With D as a whole being still at a beta stage, you can't expect any GUI library to be mature.  But there are several around.

http://www.wikiservice.at/wiki4d/wiki.cgi?AvailableGuiLibraries

Expect to see a maintenance release of SDWF in the next week.

Stewart.

-- 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/M d- s:- a->--- UB@ P+ L E@ W++@ N+++ o K- w++@ O? M V? PS- PE- Y? PGP- t- 5? X? R b DI? D G e++>++++ h-- r-- !y
------END GEEK CODE BLOCK------

My e-mail is valid but not my primary mailbox.  Please keep replies on the 'group where everyone may benefit.
July 21, 2005
"Tim Laurent" <nanobyte@gmx.com> wrote in message news:dbolob$2idu$1@digitaldaemon.com...
> Hi,
>
> I need to develop a Win32 GUI client application that should not exceed 300 KB in size and should not depend on any external .DLL files. I have never done any Win32 programming before. I am familiar with wxWidgets, Java Swing and WinForms.
>
> Many seem to dislike MFC, and some use WTL. Since I have no Win32 or MFC programming experience, I am not sure if I should spend any time experimenting with the WTL at all.
>
> D to the rescue? After some experimentation, I have come to the conclusion that D is definitely one of my very favorite programming languages.
>
> I have also discovered DFL and Harmonia. Their resulting executables both fit my space requirements and both toolkits are nothing but amazing (Harmonia's performance is just incredible!).
>
> However, I am a little bit worried about the stability and "maturity" of these toolkits.
>
> Has anyone used either of them successfully in a commercial project?
>
> Thanks,
>
> -Tim

Hi, Tim.

Your question is too generic I would say.

What kind of UI you would like?
Standard shell alike or something like Inductive UI
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/iuiguidelines.asp)
?
What is the main idiom of application?
How complex is it?
Et cetera., et cetera...

In general:

Harmonia is close to Swing in principle. (Thanks for your "incredible" -
that was one of  my intentions)
DFL, I believe, is close to WinForms.

WTL... well... you can try it but keep sedatives around.
Honestly speaking BlockNote (http://blocknote.net)
(it has WTL UI) development was close to aesthetic disaster for me.
But WTL so far is the only library which allows you to use XP themes "as
is".

Andrew.
http://terrainformatica.com




July 22, 2005
> With D as a whole being still at a beta stage, you can't expect any GUI library to be mature.  But there are several around.


As long as all bugs are known, it should be possible to code around them, right? Or are there any serious compiler issues that make it an not-so-ideal choice for commercial projects?
July 22, 2005
> What kind of UI you would like?

I do not require any non-standard widgets (except a bitmap button) - although I can imagine for those Harmonia really shines!

The application basically consists of of a property editor on the right and several (logically connected) listviews with multiple columns in "icon view" stacked on top of each other to the left of it (preferably resizable using splitters) - a database-frontend like application.

The user should be able to select multiple items in the listviews and drag and drop them. I have already implemented such behaviour with Borland's VCL, so my question is: It seems Harmonia does not have a multi-column listview - how long would it take to create one?

BTW, I find the prospect of completely drawing my own Harmonia widgets myself very exciting!

-Tim

July 22, 2005
> Harmonia is close to Swing in principle. (Thanks for your "incredible" - that was one of  my intentions)

It could very well be the "killer toolkit" that pushes D into the mainstream! Being able to create high-quality, highly reponsive modern GUIs in a free, garbage-collected Java-like programming language that compiles to natively executable code that is less than 500 KB in size and does not have any external dependencies like the JRE or .NET Framework could be compelling enough to switch from almost any other GUI creation environment to D!


> WTL... well... you can try it but keep sedatives around.
> Honestly speaking BlockNote (http://blocknote.net)
> (it has WTL UI) development was close to aesthetic disaster for me.
> But WTL so far is the only library which allows you to use XP themes "as is".

Andrew, the quality of the software you produce is nothing short of amazing. I am really impressed! I've read so many bad things about MFC and so many comparisons between it and the WTL that I will do some experimentation with D and Harmonia.

I've tried several GUI toolkits over the last couple of days, and as much hype about them as there is, they all lack a cool demo that convinces you to use them instantely. With Harmonia it is completely the other way around - there is no hype about it and the demo completely blows you away!

Reminds me of John Carmack (Programmer of Quake/Doom), who wrote about VRML:

"It is almost painful for me to watch some of the VRML initiatives. It just seems so obviously the wrong way to do something. All of this debating, committee forming, and spec writing, and in the end, there isn't anything to show for it. Make something really cool first, and worry about the spec after you are sure it's worth it!"

-Tim

July 22, 2005
Tim Laurent wrote:
> 
>> With D as a whole being still at a beta stage, you can't expect any GUI library to be mature.  But there are several around.
> 
> 
> 
> As long as all bugs are known, it should be possible to code around them, right? Or are there any serious compiler issues that make it an not-so-ideal choice for commercial projects?

Some changes are still being made to the language and the syntax.
Consider for example AAs, AA.nonExistantElement used to create a new element, now it throws an exception.
Someone made thread a while ago about this problem (he was kinda writing a commercial app), I think he is usiong dmd 0.125 now.
July 23, 2005
"Tim Laurent" <nanobyte@gmx.com> wrote in message news:dbqa20$nch$1@digitaldaemon.com...
>> What kind of UI you would like?
>
> I do not require any non-standard widgets (except a bitmap button) - although I can imagine for those Harmonia really shines!

Then I guess that DFL (Christopher E. Miller ) or
MinWin ( Ben Hinkle ) are ways to go.

>
> The application basically consists of of a property editor on the right and several (logically connected) listviews with multiple columns in "icon view" stacked on top of each other to the left of it (preferably resizable using splitters) - a database-frontend like application.

"property editor":

The best way to do Property Editor is to use HTML container for that.
See: Harmonia's sample: testbed.exe / tab "Basic Control Test" for the idea.

Each entity with properties (e.g. some class) has to provide 1) method
returning HTML containing and describing set of properties.
2) two methods get/setValues(collection).
In this case Properties Editor will be trivial Harmonia's HTML container.

"icon view list":

No surprise but this could be also HTML. Icon view is just:

<p><img src="..." href="..."> <img src="..." href="..."> ... </p>

Another option is to use set of Buttons for that and
call Widgets (container) layoutFlow method for the
"icon view"  positioning:

  // simple flow layout, replaces children
  // as bricks in the wall.
  // uses margins of widgets
  // to set spacing between widgets.
  // margins are collapsing

void widgets.layoutFlow(inout rect outline)

"Resizable using splitters":
already there.

>
> The user should be able to select multiple items in the listviews and drag and drop them. I have already implemented such behaviour with Borland's VCL, so my question is: It seems Harmonia does not have a multi-column listview - how long would it take to create one?

"multi-column listview" If it is really needed then it is two days project.

I am assuming that listview is made using set of Buttons:

Drag-n-drop. If it is just inside your own process than
it is not a problem:
 1) detect drag start.
 2) reparent Button to the window to be able to move it freely.
 3) move it in sync with mouse. As there is no HWNDs involved
  then it will be really smooth and fast - true WYSIWYG drag-n-drop.
As you may see idea is simple - to move objects themselves and
not just do emulation with cursor shapes.

If dnd is between processes and using system clipboard formats than it will take more time to implement.

>
> BTW, I find the prospect of completely drawing my own Harmonia widgets myself very exciting!

Yep. Architecture is simple - straightforward and regular.

Andrew.


July 23, 2005
"Tim Laurent" <nanobyte@gmx.com> wrote in message news:dbqar4$nso$1@digitaldaemon.com...
>
>> Harmonia is close to Swing in principle. (Thanks for your "incredible" - that was one of  my intentions)
>
> It could very well be the "killer toolkit" that pushes D into the mainstream! Being able to create high-quality, highly reponsive modern GUIs in a free, garbage-collected Java-like programming language that compiles to natively executable code that is less than 500 KB in size and does not have any external dependencies like the JRE or .NET Framework could be compelling enough to switch from almost any other GUI creation environment to D!
>

:) Exactly!

>
>> WTL... well... you can try it but keep sedatives around.
>> Honestly speaking BlockNote (http://blocknote.net)
>> (it has WTL UI) development was close to aesthetic disaster for me.
>> But WTL so far is the only library which allows you to use XP themes "as
>> is".
>
> Andrew, the quality of the software you produce is nothing short of amazing. I am really impressed! I've read so many bad things about MFC and so many comparisons between it and the WTL that I will do some experimentation with D and Harmonia.
>
> I've tried several GUI toolkits over the last couple of days, and as much hype about them as there is, they all lack a cool demo that convinces you to use them instantely. With Harmonia it is completely the other way around - there is no hype about it and the demo completely blows you away!

"several GUI toolkits..."  :)

Here they are all: http://www.geocities.com/SiliconValley/Vista/7184/guitool.html

And for cool examples go here: http://www.antigrain.com/demo/index.html

We are considering with Maxim (its author) implementation of Harmonia's GraphicsEx class using his AGG package.

>
> Reminds me of John Carmack (Programmer of Quake/Doom), who wrote about VRML:
>
> "It is almost painful for me to watch some of the VRML initiatives. It just seems so obviously the wrong way to do something. All of this debating, committee forming, and spec writing, and in the end, there isn't anything to show for it. Make something really cool first, and worry about the spec after you are sure it's worth it!"
>

I am monitoring W3C CSS and HTML groups....
As further as John statement is close to absolute true :)

Andrew.