← Back to team overview

kicad-developers team mailing list archive

Re: wxAUI woes

 

On 10/27/2017 10:02 PM, hauptmech wrote:
> On 28/10/17 01:00, Wayne Stambaugh wrote:
>>> If the pane is mandatory (no view toggle) you probably need to hard-code
>>> unhiding it after LoadPerspective to be nice to users upgrading with
>>> config files in place.
>> You will most likely have to force the change in the perspective to
>> ensure that you can unhide panes.  I would be careful about what aui
>> behavior you enable.  If I recall, detachable panes was also broken but
>> that make have been fixed.  Have you tried testing with wx 3.1?  Maybe
>> the wx project fixed some of these issues.
>>
> Internal to Aui, there is no such thing as a perspective. It's just just
> the name used to load and save all the pane (and dock) info.
> 
> It's been a long time but my recollection is that Aui worked fine once I
> read the [aui] code and got an understanding of how it was designed to
> be used. The written documentation was sparse and kicad authors had
> misinterpreted some of how Aui is supposed to work. EDA_PANEINFO
> (kicad/include/wxstruct.h) captured much of what I learned. My goal at
> the time was detachable panes, which worked without problem once the
> panes were configured properly. My patch left out the final setting for
> detachable panes because everyone was gunshy about aui at the time and
> it was too big a step.
> 

I got detachable panes and toolbars to work as long I didn't use the
perspectives to save/load the state of the UI between sessions.  This is
where things fell apart.  To be honest, I didn't spend a lot of time on
this and I certainly didn't dig through the wx source.  I was just going
by the wx documentation.

As long as you manage to save/load the UI settings between sessions, I
am fine with making these changes.  Allowing the UI to be changed
without saving the changes between sessions doesn't make a lot of sense
to me so I would rather not go down that path.  If you do take on this,
please limit the changes to one main frame and get it working properly
before applying it to all of the main frames.


References