View mode: basic / threaded / horizontal-split · Log in · Help
July 21, 2005
D for commercial Win32 GUI app
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
Re: D for commercial Win32 GUI app
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
Re: D for commercial Win32 GUI app
"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
Re: D for commercial Win32 GUI app
> 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
Re: D for commercial Win32 GUI app
> 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
Re: D for commercial Win32 GUI app
> 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
Re: D for commercial Win32 GUI app
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
Re: D for commercial Win32 GUI app
"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
Re: D for commercial Win32 GUI app
"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.
Top | Discussion index | About this forum | D home