Subject: Re: Setup.exe sugestion/annoyance
From: Sam Edge <[email-masked]>
To: [email-masked]
Date: Thu, 22 May 2003 11:45:42 +0100

Daniel Kabs <[email-masked]> wrote in
<[email-masked]>
in gmane.os.cygwin on Wed, 21 May 2003 16:09:36 +0200:

> The "bug" could be easily fixed by the programmer who is working on setup.exe 
> in no time at all. Probably it's just a checkbox in the Visual C++ resource 
> editor. 
> Sorry, I don't have any development kit or compiler installed on my 
> windows system. I'just wanted to use cygwin and to point you to
> a usability problem.

Oh dear, oh dear. They say a little information is a dangerous thing.

Setting the appropriate flags in the resource definition for the
"property sheet" (wizard dialog box) tells Windows to allow the window
to be resized, yes.

However the window manager has no way of knowing how the /contents/ of
the window are to be moved or resized when the window changes size.

So instead Windows asks the program at runtime to do this be sending
it WM_SIZING and WM_SIZE messages while the user is dragging a corner
or border and once the user has finished resizing the window.

Some C/C++ GUI widget libraries have container tools that can help in
this process. I can't remember whether the Microsoft Foundation
Classes have such for wizards/property sheets but in any case MFC is
proprietary and requires Visual C++ or another proprietary compiler.
Setup.exe is written entirely using gcc and, I suspect, without the
overhead of using a bloat-ware widget library

So the implementer will have to roll his own handlers to do something
like the following.
1) Make a note of the position of every control on every page of the
wizard in the window initialisation code after the dialog box
resources are loaded.
2) Handle the size messages by explicitly moving some of the controls
for the currently visible property sheet relative to the new
bottom-right edge of the sheet, working out how much space is now
available above/to the left and resizing and moving the rest of the
controls appropriately. He'll have to write a specific bit of code for
each property page in the wizard, since the layout of the controls
changes page to page.
3) Debug all this.

It's not that it can't be done. It's that nobody has volunteered the
time yet.

Regards,
-- 
Sam Edge

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/