On Tue, 15 Jul 2003 01:22:25 +0200 (Romance Daylight Time) Vadim Zeitlin <zeitlin@...> wrote:
> On Fri, 27 Jun 2003 16:34:30 +0200 (CEST) Robert Vazan
> <robertvazan@...> wrote:
> RV> > Sorry, I don't follow you -- why? If the users code uses sizers,
> RV> > wxWizard
> RV> > will use them to size tiself correctly, isn't this what we want?
> RV> You never know whether calling code uses sizers because new pages
> can be
> RV> added at any time. Adding all pages into some sizer isn't solution as
> RV> the wizard would then lose its current automatic resizing feature.
> I don't understand this -- surely the wizard could still find the max
> of all pages starting from the first one as it currently does in
> FitToPage() even if the sizer were used internally? The advantage is that
> you could add pages which can't be reached by applying GetNext() to the
> first one to the sizer as well.
What you are writing here seems to be actual behaviour of patched
wizard, so what's the problem? Yes, it exports internal page area sizer,
but it calls FitToPage for all reachable pages anyway.
> The only problem is that you may not want to construct thep age at all
> unless it is really needed (this is the case for some pages in Mahogany,
> for example it takes time to initialize the dial up page of the install
> wizard and why do it if the user doesn't choose to use it at all?). I
> that the simplest and best solution would be to do real initialization in
> TransferDataToWindow() which is only called when the page is really
> not in the page ctor.
Yes, calling FitToPage was really consequence of laziness. I could
resize one page at a time with few more lines of code. As I look at dial
up page, it would be probably necessary to change it as you describe if
we continue to call FitToPage for first wizard page.
> RV> Then why not make new behaviour forced without any checks?
> Sorry, which new behaviour?
This was lost in thread. We talked about style flag that switches
between old behaviour (100-percent identical to old wizard except
implementation) and new behaviour (automatic FitToPage for all pages,
user-resizable window, no border around page). The GetPageAreaSizer is
independent of the flag, but it wasn't meant to be used alone.
The question was, whether this flag should be left as it is, changed to
member function, or made default. I proposed above to make it default
from wxWindows 2.5 up, forcing all applications to deal with it, because
everybody is using sizers for individual pages anyway.
> It looks (from reading the code) that the wizard size may change when
> passing to another page -- is this true?
Yes, that's what sizers are for, after all. The only problem I had with
this is that very big page following smallest page will move center of
wizard significantly away from center of screen. Keeping it centered
requires some work (sizers are calculated in asynchronous events) and
this functionality should be part of wxWindow, not wxWizard.