mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-15 02:33:15 +02:00
The general idea is to support user-units inheritance. The UNIT_BINDER allows wrapped controls to inherit units from their parent dialog, while KEYWAY_HOLDER and DIALOG_SHIM allow child KEYWAY_HOLDERs or DIALOG_SHIMs to inherit units from their parent. The GetUserUnits() method signature has to move to KEYWAY_HOLDER rather than KEYWAY_PLAYER (where it makes more sense) as it’s the only common ancestor of KEYWAY_PLAYER and DIALOG_SHIM. As long as we'll be using the UNIT_BINDER more widely, it also makes sense to move evaluation and validation into it. This commit also provides eeschema’s DIALOG_LABEL_EDITOR and pcbnew’s DIALOG_TRACK_VIA_PROPERTIES and DIALOG_SET_GRID as models of how to use the new user-units inheritance, eval, and validation. Fixes: lp:593795 * https://bugs.launchpad.net/kicad/+bug/593795 (cherry picked from commit c8bc53e)
63 lines
1.7 KiB
C++
63 lines
1.7 KiB
C++
|
|
/*
|
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
|
*
|
|
* Copyright (C) 2014 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
|
* Copyright (C) 2016 KiCad Developers, see CHANGELOG.TXT for contributors.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, you may find one here:
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
|
* or you may write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#include <kiway.h>
|
|
#include <kiway_player.h>
|
|
|
|
#if defined(DEBUG)
|
|
#include <typeinfo>
|
|
#endif
|
|
|
|
|
|
PROJECT& KIWAY_HOLDER::Prj() const
|
|
{
|
|
return Kiway().Prj();
|
|
}
|
|
|
|
|
|
EDA_UNITS_T KIWAY_HOLDER::GetUserUnits() const
|
|
{
|
|
return MILLIMETRES;
|
|
}
|
|
|
|
|
|
// this is not speed critical, hide it out of line.
|
|
void KIWAY_HOLDER::SetKiway( wxWindow* aDest, KIWAY* aKiway )
|
|
{
|
|
#if defined(DEBUG)
|
|
// offer a trap point for debugging most any window
|
|
wxASSERT( aDest );
|
|
if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
|
|
{
|
|
int breakhere=1;
|
|
(void) breakhere;
|
|
}
|
|
#endif
|
|
|
|
(void) aDest;
|
|
|
|
m_kiway = aKiway;
|
|
}
|