← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Assertion failure and can't close Hotkeys List

 

On 3/20/2015 3:46 PM, jp charras wrote:
> Le 20/03/2015 20:39, Wayne Stambaugh a écrit :
>> Hmm!?  Where have I heard this before?  The more times I see this, the
>> more seriously I'm thinking of creating a policy where kicad dialogs
>> must use the proper wxWidgets methods for transferring data to and from
>> the dialog controls (see
>> http://docs.wxwidgets.org/3.0/overview_validator.html) and making the
>> wxID_OK and wxID_CANCEL event handlers we currently use a shooting
>> offense. :)
> 
> Yes, you are right: some of our dialogs could use the default wxWidgets
> handlers for the OK and Cancel buttons.
> For some of them, I am the culprit...
> Sorry.
> 
> 

Please don't use the default ok and cancel event handlers unless you
need to override the default behavior (which we typically don't).
Override TransferDataToWindow and TransferDataFromWindow and/or use
wxValidators for data transfer.  The default ok and cancel event
handlers in wxDialog are already hooked in to this using these methods
for transferring data to and from the dialog controls.  When you create
a new event handler for ok and/or cancel, you completely bypass this
mechanism.  I have a copy of "Cross-Platform GUI Programming with
wxWidgets" book by Julian Smart (one of the wxWidgets founders) which
has an excellent section on dialog data transfer but you can get the
general idea of how this works by reading the validator overview in the
wxWidgets documentation and digging around the wxWidgets source code.
Using the correct data transfer method means that you do not have to
keep track of the dialog modality.  It's already done for you.



References