[sword-devel] roadmap for Windows frontend(?)

Christian Renz sword-devel@crosswire.org
Wed, 9 Apr 2003 13:29:35 +0200


I've not contributed any C++-code to sword yet, so take my comments
with a grain of salt :).

>Do you think it will be possible to create custom desktops like that has?  

I see no difficulty in creating that with wxWindows. (btw, it still
works :)).

>From an UI point of view, I'd say I don't really like the small window
to open up new desktops -- I prefer MDI or a mixed approach
(e.g. Opera 7's tabs and windows). And of course on Mac OS
(Classic/X), you'd want to put all of the master window's
functionality in the menu bar. But of course, that's a whole different
discussion. 

I _do_ like the ideas of customized desktops (or "projects") with a
selection of modules that can be saved/restored etc. very much -- way
to go, Chris!

[ HTML renderer ]

I'd vote against wxHTML myself. It doesn't really have a lot of
features. I haven't tried wxMozilla, but it seems to implement the
Mozilla engine as is, so it might be useful.

[ Using wxWindows ]

While I am using MSVC++ myself (and the student version is somewhat
affordable), I would vote against using MFC. A Sword 2.0 is going to
take a lot of work on the UI, and I feel it's not really worth the
effort to put it into something that's not portable. I plug wxWindows,
of course, because I have made good experiences and it is well
supported (I'm on the mailinglist). In my experience, it is also quite
fast. I'm doing a (proprietary) project right now, where I need to
calculate and render 800x600 images at about 20 fps on a modern
machine. I found that the wxWindows overhead is quite small. I even
replaced wxWindows' bitmap handling and drawing with my own calls to
SetDIBitsToDevice() and found that the speed gain was so marginal it
was not really worth the effort (since I had already written it, I
left the code in, but I wouldn't write it again :)).

Another thing that speaks for wxWindows is that you can create your
own controls etc. no problem, and that if you are in dire need, you
can still insert platform-dependent code (GDI, DirectX, ...). It's
better to port a bit of code to another platform than the whole
project :). That makes me quite optimistic that e.g. a HTML rendering
engine can be added without too much of a hassle.

Of course, wxWindows is not the be-all-and-end-all, and it has its
drawbacks as well (e.g., the executable's size). There are other
platform-independent toolkits as well, although probably not as
complete as wxWindows, and probably not available in Unicode. My
general vote therefore goes to using an OS, platform-independent
toolkit, rather than something like MFC.

Greetings,
   Christian

-- 
crenz@web42.com - http://www.web42.com/crenz/ - http://www.web42.com/

"Few are those who can see with their own eyes and hear with their own
hearts."  -- Albert Einstein