On Wed, Oct 24, 2012 at 8:52 AM, Staffan Tylen <staffan.tylen@gmail.com> wrote:
>From reading I understand that to create a resizeable dialog one have to follow the following guidelines as a minimum:

- use the THICKFRAME option with create/createcenter
- use class DlgAreaU to define dialog coordinates
- define and connect an onResize method
- leave the program in source format so that ooRexx can parse the defineDialog method

The last point I have a problem to understand: what makes parsing a requirement in ooRexx? Obviously a C++ programmer doesn't have this restriction...


The DlgAreaU class allows resizable dialogs by parsing defineDialog to get a list of all the dialog controls and sets up some data structures that track their initial sizes and relative placement in the dialog.  

This was some very clever programming on Jon's part, but it relies on being able to parse the lines of code in the defineDialog() method.  If there are no lines of code to parse, then the technique can not work.  This is the case in RcDialog and ResDialog dialogs.  It is also the case if you tokenize the code.

It is on my list of TO DO things.  There is a RFE for it.  The way to do it better would be to implement it in the native C / C++ code.  But, that takes figuring out a way to retro-fit it to the existing ooDialog framework and there is a fair amount of C / C++ coding that is required.  I'm not sure when I will get to it.

If you were ambitious, you could implement your own solution in Rexx.  You would need to wait until initDialog() when all the underlying controls exist.  Then you could enumerate all the dialog controls and get their actual size and position in the dialog.  Then connect the resize event and resize everything using the same basic algorithm as in DlgAreaU

--
Mark Miesfeld