www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - D for commercial Win32 GUI app

reply Tim Laurent <nanobyte gmx.com> writes:
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
Jul 21 2005
next sibling parent reply Stewart Gordon <smjg_1998 yahoo.com> writes:
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.

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.
Jul 21 2005
parent reply Tim Laurent <nanobyte gmx.com> writes:
 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?
Jul 22 2005
parent Hasan Aljudy <hasan.aljudy gmail.com> writes:
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.
Jul 22 2005
prev sibling parent reply "Andrew Fedoniouk" <news terrainformatica.com> writes:
"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/htm /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
Jul 21 2005
next sibling parent reply Tim Laurent <nanobyte gmx.com> writes:
 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
Jul 22 2005
parent "Andrew Fedoniouk" <news terrainformatica.com> writes:
"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.
Jul 22 2005
prev sibling parent reply Tim Laurent <nanobyte gmx.com> writes:
 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
Jul 22 2005
parent "Andrew Fedoniouk" <news terrainformatica.com> writes:
"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.
Jul 22 2005