Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: Sam Edge To: cygwin AT cygwin DOT com Subject: Re: Setup.exe sugestion/annoyance Date: Thu, 22 May 2003 11:45:42 +0100 Organization: . Reply-To: cygwin AT cygwin DOT com Message-ID: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Posting-Agent: Hamster/2.0.0.1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id h4MAm4G24071 Daniel Kabs wrote in 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/