KiCad PCB EDA Suite
DIALOG_CREATE_ARRAY Class Reference

#include <dialog_create_array.h>

Inheritance diagram for DIALOG_CREATE_ARRAY:
DIALOG_CREATE_ARRAY_BASE CONFIG_SAVE_RESTORE_WINDOW DIALOG_SHIM KIWAY_HOLDER

Classes

struct  ARRAY_CIRCULAR_OPTIONS
 
struct  ARRAY_GRID_OPTIONS
 
struct  ARRAY_OPTIONS
 Persistent dialog options. More...
 
struct  CREATE_ARRAY_DIALOG_ENTRIES
 

Public Types

enum  ARRAY_TYPE_T { ARRAY_GRID, ARRAY_CIRCULAR }
 
enum  NUMBERING_TYPE_T { NUMBERING_NUMERIC = 0, NUMBERING_HEX, NUMBERING_ALPHA_NO_IOSQXZ, NUMBERING_ALPHA_FULL }
 

Public Member Functions

 DIALOG_CREATE_ARRAY (PCB_BASE_FRAME *aParent, bool enableNumbering, wxPoint aOrigPos)
 
 ~DIALOG_CREATE_ARRAY ()
 
ARRAY_OPTIONSGetArrayOptions () const
 
void SetInitialFocus (wxWindow *aWindow)
 Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown. More...
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
EDA_UNITS_T GetUserUnits () const override
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Protected Member Functions

virtual void OnClose (wxCloseEvent &event)
 
void FinishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void SetSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int HorizPixelsFromDU (int x)
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int VertPixelsFromDU (int y)
 Convert an integer number of dialog units to pixels, vertically. More...
 
void Add (wxRadioBox *ctrl, int &dest)
 
void Add (wxCheckBox *ctrl, bool &dest)
 
void Add (wxTextCtrl *ctrl, wxString &dest)
 
void Add (UNIT_BINDER &ctrl, int &dest)
 
void Add (wxChoice *ctrl, int &dest)
 
void Add (wxNotebook *ctrl, int &dest)
 
void ReadConfigFromControls ()
 
void RestoreConfigToControls ()
 

Protected Attributes

wxNotebook * m_gridTypeNotebook
 
wxPanel * m_gridPanel
 
wxStaticText * m_labelNx
 
TEXT_CTRL_EVALm_entryNx
 
wxStaticText * m_labelNy
 
TEXT_CTRL_EVALm_entryNy
 
wxStaticText * m_labelDx
 
wxTextCtrl * m_entryDx
 
wxStaticText * m_unitLabelDx
 
wxStaticText * m_labelDy
 
wxTextCtrl * m_entryDy
 
wxStaticText * m_unitLabelDy
 
wxStaticText * m_labelOffsetX
 
wxTextCtrl * m_entryOffsetX
 
wxStaticText * m_unitLabelOffsetX
 
wxStaticText * m_labelOffsetY
 
wxTextCtrl * m_entryOffsetY
 
wxStaticText * m_unitLabelOffsetY
 
wxStaticText * m_labelStagger
 
TEXT_CTRL_EVALm_entryStagger
 
wxRadioBox * m_radioBoxGridStaggerType
 
wxBoxSizer * m_gridPadNumberingSizer
 
wxRadioBox * m_radioBoxGridNumberingAxis
 
wxCheckBox * m_checkBoxGridReverseNumbering
 
wxRadioBox * m_rbGridStartNumberingOpt
 
wxRadioBox * m_radioBoxGridNumberingScheme
 
wxStaticText * m_labelPriAxisNumbering
 
wxChoice * m_choicePriAxisNumbering
 
wxStaticText * m_labelSecAxisNumbering
 
wxChoice * m_choiceSecAxisNumbering
 
wxStaticText * m_labelGridNumberingOffset
 
wxTextCtrl * m_entryGridPriNumberingOffset
 
wxTextCtrl * m_entryGridSecNumberingOffset
 
wxPanel * m_circularPanel
 
wxStaticText * m_labelCentreX
 
wxTextCtrl * m_entryCentreX
 
wxStaticText * m_unitLabelCentreX
 
wxStaticText * m_labelCentreY
 
wxTextCtrl * m_entryCentreY
 
wxStaticText * m_unitLabelCentreY
 
wxStaticText * m_labelCircRadius
 
wxStaticText * m_valueCircRadius
 
wxStaticText * m_unitLabelCircRadius
 
wxStaticText * m_labelCircAngle
 
wxTextCtrl * m_entryCircAngle
 
wxStaticText * m_unitLabelCircAngle
 
wxStaticText * m_labelCircCount
 
TEXT_CTRL_EVALm_entryCircCount
 
wxStaticText * m_labelCircRotate
 
wxCheckBox * m_entryRotateItemsCb
 
wxStaticBoxSizer * m_circPadNumberingSizer
 
wxRadioBox * m_rbCircStartNumberingOpt
 
wxStaticText * m_labelCircNumStart
 
wxTextCtrl * m_entryCircNumberingStart
 
wxStdDialogButtonSizer * m_stdButtons
 
wxButton * m_stdButtonsOK
 
wxButton * m_stdButtonsCancel
 
EDA_UNITS_T m_units
 
std::string m_hash_key
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

void OnParameterChanged (wxCommandEvent &event) override
 
void setControlEnablement ()
 
void calculateCircularArrayProperties ()
 
bool TransferDataFromWindow () override
 

Private Attributes

ARRAY_OPTIONSm_settings
 The settings object returned to the caller. More...
 
UNIT_BINDER m_hSpacing
 
UNIT_BINDER m_vSpacing
 
UNIT_BINDER m_hOffset
 
UNIT_BINDER m_vOffset
 
UNIT_BINDER m_hCentre
 
UNIT_BINDER m_vCentre
 
UNIT_BINDER m_circRadius
 
const wxPoint m_originalItemPosition
 
bool m_numberingEnabled
 

Static Private Attributes

static CREATE_ARRAY_DIALOG_ENTRIES m_options
 

Detailed Description

Definition at line 191 of file dialog_create_array.h.

Member Enumeration Documentation

Enumerator
ARRAY_GRID 

A grid (x*y) array.

ARRAY_CIRCULAR 

A circular array.

Definition at line 196 of file dialog_create_array.h.

197  {
198  ARRAY_GRID,
200  };
Enumerator
NUMBERING_NUMERIC 

Arabic numerals: 0,1,2,3,4,5,6,7,8,9,10,11...

NUMBERING_HEX 
NUMBERING_ALPHA_NO_IOSQXZ 

Alphabet, excluding IOSQXZ

                           Per ASME Y14.35M-1997 sec. 5.2 (previously MIL-STD-100 sec. 406.5)
                           as these can be confused with numerals and are often not used
                           for pin numbering on BGAs, etc
NUMBERING_ALPHA_FULL 

Full 26-character alphabet.

Definition at line 203 of file dialog_create_array.h.

Constructor & Destructor Documentation

DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY ( PCB_BASE_FRAME aParent,
bool  enableNumbering,
wxPoint  aOrigPos 
)

Definition at line 39 of file dialog_create_array.cpp.

References CONFIG_SAVE_RESTORE_WINDOW::Add(), calculateCircularArrayProperties(), DIM, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_arrayTypeTab, DIALOG_CREATE_ARRAY_BASE::m_checkBoxGridReverseNumbering, DIALOG_CREATE_ARRAY_BASE::m_choicePriAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_choiceSecAxisNumbering, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_circAngle, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_circCentreX, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_circCentreY, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_circCount, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_circNumberingOffset, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_circRotate, DIALOG_CREATE_ARRAY_BASE::m_entryCircAngle, DIALOG_CREATE_ARRAY_BASE::m_entryCircCount, DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStart, DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryNx, DIALOG_CREATE_ARRAY_BASE::m_entryNy, DIALOG_CREATE_ARRAY_BASE::m_entryRotateItemsCb, DIALOG_CREATE_ARRAY_BASE::m_entryStagger, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_grid2dArrayNumbering, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridDx, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridDy, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridNumberingAxis, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridNumberingReverseAlternate, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridNx, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridNy, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridOffsetX, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridOffsetY, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridPriAxisNumScheme, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridPriNumberingOffset, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridSecAxisNumScheme, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridSecNumberingOffset, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridStagger, DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES::m_gridStaggerType, DIALOG_CREATE_ARRAY_BASE::m_gridTypeNotebook, m_hCentre, m_hOffset, m_hSpacing, m_options, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingAxis, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingScheme, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridStaggerType, DIALOG_CREATE_ARRAY_BASE::m_stdButtonsOK, m_vCentre, m_vOffset, m_vSpacing, CONFIG_SAVE_RESTORE_WINDOW::RestoreConfigToControls(), and setControlEnablement().

40  :
41  DIALOG_CREATE_ARRAY_BASE( aParent ),
43  m_settings( NULL ),
51  m_originalItemPosition( aOrigPos ),
52  m_numberingEnabled(enableNumbering)
53 {
54  // Set up numbering scheme drop downs
55  //
56  // character set
57  // NOTE: do not change the order of this relative to the NUMBERING_TYPE_T enum
58  const wxString charSetDescriptions[] =
59  {
60  _( "Numerals (0,1,2,...,9,10)" ),
61  _( "Hexadecimal (0,1,...,F,10,...)" ),
62  _( "Alphabet, minus IOSQXZ" ),
63  _( "Alphabet, full 26 characters" )
64  };
65  m_choicePriAxisNumbering->Set( DIM( charSetDescriptions ), charSetDescriptions );
66  m_choiceSecAxisNumbering->Set( DIM( charSetDescriptions ), charSetDescriptions );
67 
68  m_choicePriAxisNumbering->SetSelection( 0 );
69  m_choiceSecAxisNumbering->SetSelection( 0 );
70 
75 
79 
81 
84 
91 
93 
97 
100 
102 
103  // Run the callbacks once to process the dialog contents
106 
107  m_stdButtonsOK->SetDefault();
108  Fit();
109  SetMinSize( GetSize() );
110 }
#define DIM(x)
of elements in an array
Definition: macros.h:98
CONFIG_SAVE_RESTORE_WINDOW(bool &validFlag)
ARRAY_OPTIONS * m_settings
The settings object returned to the caller.
void Add(wxRadioBox *ctrl, int &dest)
DIALOG_CREATE_ARRAY_BASE(wxWindow *parent, wxWindowID id=wxID_DIALOG_CREATE_ARRAY, const wxString &title=_("Create Array"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
static CREATE_ARRAY_DIALOG_ENTRIES m_options
const wxPoint m_originalItemPosition
DIALOG_CREATE_ARRAY::~DIALOG_CREATE_ARRAY ( )

Definition at line 113 of file dialog_create_array.cpp.

References m_settings.

114 {
115  if( m_settings != NULL )
116  delete m_settings;
117 }
ARRAY_OPTIONS * m_settings
The settings object returned to the caller.

Member Function Documentation

void CONFIG_SAVE_RESTORE_WINDOW::Add ( wxRadioBox *  ctrl,
int &  dest 
)
inlineprotectedinherited

Definition at line 66 of file dialog_create_array.h.

References CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_RADIOBOX.

Referenced by DIALOG_CREATE_ARRAY().

67  {
68  CONFIG_CTRL_T ctrlInfo = { ctrl, CFG_CTRL_RADIOBOX, (void*) &dest };
69 
70  ctrls.push_back( ctrlInfo );
71  }
std::vector< CONFIG_CTRL_T > ctrls
void CONFIG_SAVE_RESTORE_WINDOW::Add ( wxCheckBox *  ctrl,
bool &  dest 
)
inlineprotectedinherited

Definition at line 73 of file dialog_create_array.h.

References CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_CHECKBOX.

74  {
75  CONFIG_CTRL_T ctrlInfo = { ctrl, CFG_CTRL_CHECKBOX, (void*) &dest };
76 
77  ctrls.push_back( ctrlInfo );
78  }
std::vector< CONFIG_CTRL_T > ctrls
void CONFIG_SAVE_RESTORE_WINDOW::Add ( wxTextCtrl *  ctrl,
wxString &  dest 
)
inlineprotectedinherited

Definition at line 80 of file dialog_create_array.h.

References CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_TEXT.

81  {
82  CONFIG_CTRL_T ctrlInfo = { ctrl, CFG_CTRL_TEXT, (void*) &dest };
83 
84  ctrls.push_back( ctrlInfo );
85  }
std::vector< CONFIG_CTRL_T > ctrls
void CONFIG_SAVE_RESTORE_WINDOW::Add ( UNIT_BINDER ctrl,
int &  dest 
)
inlineprotectedinherited

Definition at line 87 of file dialog_create_array.h.

References CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_UNIT_BINDER.

88  {
89  CONFIG_CTRL_T ctrlInfo = { &ctrl, CFG_CTRL_UNIT_BINDER, (void*) &dest };
90 
91  ctrls.push_back( ctrlInfo );
92  }
std::vector< CONFIG_CTRL_T > ctrls
void CONFIG_SAVE_RESTORE_WINDOW::Add ( wxChoice *  ctrl,
int &  dest 
)
inlineprotectedinherited

Definition at line 95 of file dialog_create_array.h.

References CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_CHOICE.

96  {
97  CONFIG_CTRL_T ctrlInfo = { ctrl, CFG_CTRL_CHOICE, (void*) &dest };
98 
99  ctrls.push_back( ctrlInfo );
100  }
std::vector< CONFIG_CTRL_T > ctrls
void CONFIG_SAVE_RESTORE_WINDOW::Add ( wxNotebook *  ctrl,
int &  dest 
)
inlineprotectedinherited

Definition at line 102 of file dialog_create_array.h.

References CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_TAB.

103  {
104  CONFIG_CTRL_T ctrlInfo = { ctrl, CFG_CTRL_TAB, (void*) &dest };
105 
106  ctrls.push_back( ctrlInfo );
107  }
std::vector< CONFIG_CTRL_T > ctrls
void DIALOG_CREATE_ARRAY::calculateCircularArrayProperties ( )
private

Definition at line 421 of file dialog_create_array.cpp.

References VECTOR2< T >::EuclideanNorm(), UNIT_BINDER::GetValue(), m_circRadius, m_hCentre, m_originalItemPosition, m_vCentre, and UNIT_BINDER::SetValue().

Referenced by DIALOG_CREATE_ARRAY(), and OnParameterChanged().

422 {
424 
425  // Find the radius, etc of the circle
426  centre -= m_originalItemPosition;
427 
428  const double radius = VECTOR2I(centre.x, centre.y).EuclideanNorm();
429  m_circRadius.SetValue( int( radius ) );
430 }
VECTOR2< int > VECTOR2I
Definition: vector2d.h:587
virtual int GetValue()
Function GetValue Returns the current value in Internal Units.
T EuclideanNorm() const
Destructor.
Definition: vector2d.h:292
virtual void SetValue(int aValue)
Function SetValue Sets new value (in Internal Units) for the text field, taking care of units convers...
const wxPoint m_originalItemPosition
bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 221 of file dialog_shim.cpp.

Referenced by DIALOG_SHIM::IsQuasiModal().

222 {
223  // so we can do logging of this state change:
224 
225 #if defined(DEBUG)
226  const char* type_id = typeid( *this ).name();
227  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
228 #endif
229 
230  return wxDialog::Enable( enable );
231 }
void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 381 of file dialog_shim.cpp.

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, and DIALOG_SHIM::Show().

Referenced by DIALOG_SHIM::OnButton(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_COMPONENT::OnUseBrowser(), DIALOG_SHIM::SetInitialFocus(), and DIALOG_SHIM::~DIALOG_SHIM().

382 {
383  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
384  // handle validation in the same way as other dialogs.
385  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
386  return;
387 
388  SetReturnCode( retCode );
389 
390  if( !IsQuasiModal() )
391  {
392  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
393  return;
394  }
395 
396  if( m_qmodal_loop )
397  {
398  if( m_qmodal_loop->IsRunning() )
399  m_qmodal_loop->Exit( 0 );
400  else
401  m_qmodal_loop->ScheduleExit( 0 );
402 
403  m_qmodal_loop = NULL;
404  }
405 
408 
409  Show( false );
410 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:153
bool IsQuasiModal()
Definition: dialog_shim.h:95
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:155
void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

FinishDialogSettings must be called from derived classes, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 120 of file dialog_shim.cpp.

References PCAD2KICAD::Center.

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS(), DIALOG_FP_BROWSER_DISPLAY_OPTIONS::DIALOG_FP_BROWSER_DISPLAY_OPTIONS(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_NET_FROM_LIST::DIALOG_SELECT_NET_FROM_LIST(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PAGED_DIALOG::finishInitialization(), DIALOG_SHIM::GetUserUnits(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_UPDATE_FIELDS::TransferDataToWindow(), and DIALOG_COLOR_PICKER::TransferDataToWindow().

121 {
122  // must be called from the constructor of derived classes,
123  // when all widgets are initialized, and therefore their size fixed
124 
125  // SetSizeHints fixes the minimal size of sizers in the dialog
126  // (SetSizeHints calls Fit(), so no need to call it)
127  GetSizer()->SetSizeHints( this );
128 
129  // the default position, when calling the first time the dlg
130  Center();
131 }
ARRAY_OPTIONS* DIALOG_CREATE_ARRAY::GetArrayOptions ( ) const
inline
Returns
the array options set by this dialogue, or NULL if they were not set, or could not be set

Definition at line 346 of file dialog_create_array.h.

Referenced by ARRAY_CREATOR::Invoke().

347  {
348  return m_settings;
349  }
ARRAY_OPTIONS * m_settings
The settings object returned to the caller.
int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 141 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), and DIALOG_SHIM::GetUserUnits().

142 {
143  wxSize sz( x, 0 );
144  return ConvertDialogToPixels( sz ).x;
145 }
KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 60 of file kiway_player.h.

References KIWAY_HOLDER::GetUserUnits(), KIWAY_HOLDER::m_kiway, KIWAY_HOLDER::Prj(), KIWAY_HOLDER::SetKiway(), and VTBL_ENTRY.

Referenced by TREEPROJECT_ITEM::Activate(), PCB_BASE_EDIT_FRAME::AddLibrary(), SCH_EDIT_FRAME::AppendSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), CVPCB_MAINFRAME::CreateScreenCmp(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::KiwayMailIn(), KIWAY_PLAYER::language_change(), KICAD_MANAGER_FRAME::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), KICAD_MANAGER_FRAME::OnEditFpLibTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), KICAD_MANAGER_FRAME::OnEditSymLibTable(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnLeftClick(), SCH_BASE_FRAME::OnOpenLibraryViewer(), KICAD_MANAGER_FRAME::OnRunPcbFpEditor(), KICAD_MANAGER_FRAME::OnRunSchLibEditor(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OpenProjectFiles(), KIWAY_HOLDER::Prj(), PCB_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_WIZARD_FRAME::ReCreateVToolbar(), LIB_EDIT_FRAME::refreshSchematic(), KICAD_MANAGER_FRAME::RunEeschema(), KICAD_MANAGER_FRAME::RunPcbNew(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), EDA_BASE_FRAME::ShowPreferences(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

61  {
62  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
63  return *m_kiway;
64  }
KIWAY * m_kiway
Definition: kiway_player.h:94
virtual void DIALOG_CREATE_ARRAY_BASE::OnClose ( wxCloseEvent &  event)
inlineprotectedvirtualinherited
void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 283 of file dialog_shim.cpp.

References DIALOG_SHIM::m_firstPaintEvent, and DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), and DIALOG_SHIM::IsQuasiModal().

284 {
285  if( m_firstPaintEvent )
286  {
287 #ifdef __WXMAC__
288  fixOSXCancelButtonIssue( this );
289  selectAllInTextCtrls( GetChildren() );
290 #endif
291 
293  m_initialFocusTarget->SetFocus();
294  else
295  SetFocus(); // Focus the dialog itself
296 
297  m_firstPaintEvent = false;
298  }
299 
300  event.Skip();
301 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:150
bool m_firstPaintEvent
Definition: dialog_shim.h:149
void DIALOG_CREATE_ARRAY::OnParameterChanged ( wxCommandEvent &  event)
overrideprivatevirtual
PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Definition at line 34 of file kiway_holder.cpp.

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), LIB_VIEW_FRAME::BestZoom(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::checkAliasName(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), KICAD_MANAGER_FRAME::CreateNewProject(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::Files_io_from_id(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibAlias(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DIALOG_BOM::getPluginFileName(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), KIWAY_HOLDER::Kiway(), LIB_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), KICAD_MANAGER_FRAME::LoadProject(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DModel(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), CVPCB_MAINFRAME::OnConfigurePaths(), FOOTPRINT_EDIT_FRAME::OnConfigurePaths(), KICAD_MANAGER_FRAME::OnCreateProjectFromTemplate(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), SCH_EDIT_FRAME::OnRightClick(), KICAD_MANAGER_FRAME::OnRunGerbview(), DIALOG_BOM::OnRunPlugin(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), KICAD_MANAGER_FRAME::OnSaveProject(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDIT_FRAME::PasteListOfItems(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Process_Config(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::saveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), LIB_EDIT_FRAME::savePartAs(), SCH_EDIT_FRAME::SaveProject(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), KICAD_MANAGER_FRAME::SetProjectFileName(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::Validate(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), LAUNCHER_PANEL::~LAUNCHER_PANEL(), and PCB_BASE_EDIT_FRAME::~PCB_BASE_EDIT_FRAME().

35 {
36  return Kiway().Prj();
37 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_player.h:60
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:142
void CONFIG_SAVE_RESTORE_WINDOW::ReadConfigFromControls ( )
inlineprotectedinherited

Definition at line 109 of file dialog_create_array.h.

References CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_CHECKBOX, CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_CHOICE, CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_RADIOBOX, CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_TAB, CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_TEXT, and CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_UNIT_BINDER.

Referenced by TransferDataFromWindow().

110  {
111  for( std::vector<CONFIG_CTRL_T>::const_iterator iter = ctrls.begin(), iend = ctrls.end();
112  iter != iend; ++iter )
113  {
114  switch( iter->type )
115  {
116  case CFG_CTRL_CHECKBOX:
117  *(bool*) iter->dest = static_cast<wxCheckBox*>( iter->control )->GetValue();
118  break;
119 
120  case CFG_CTRL_TEXT:
121  *(wxString*) iter->dest = static_cast<wxTextCtrl*>( iter->control )->GetValue();
122  break;
123 
125  *(int*) iter->dest = static_cast<UNIT_BINDER*>( iter->control )->GetValue();
126  break;
127 
128  case CFG_CTRL_CHOICE:
129  *(int*) iter->dest = static_cast<wxChoice*>( iter->control )->GetSelection();
130  break;
131 
132  case CFG_CTRL_RADIOBOX:
133  *(int*) iter->dest = static_cast<wxRadioBox*>( iter->control )->GetSelection();
134  break;
135 
136  case CFG_CTRL_TAB:
137  *(int*) iter->dest = static_cast<wxNotebook*>( iter->control )->GetSelection();
138  break;
139 
140  default:
141  wxASSERT_MSG( false, wxString(
142  "Unhandled control type for config store: " ) << iter->type );
143  }
144  }
145 
146  valid = true;
147  }
std::vector< CONFIG_CTRL_T > ctrls
void CONFIG_SAVE_RESTORE_WINDOW::RestoreConfigToControls ( )
inlineprotectedinherited

Definition at line 149 of file dialog_create_array.h.

References CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_CHECKBOX, CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_CHOICE, CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_RADIOBOX, CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_TAB, CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_TEXT, and CONFIG_SAVE_RESTORE_WINDOW::CFG_CTRL_UNIT_BINDER.

Referenced by DIALOG_CREATE_ARRAY().

150  {
151  if( !valid )
152  return;
153 
154  for( std::vector<CONFIG_CTRL_T>::const_iterator iter = ctrls.begin(), iend = ctrls.end();
155  iter != iend; ++iter )
156  {
157  switch( iter->type )
158  {
159  case CFG_CTRL_CHECKBOX:
160  static_cast<wxCheckBox*>( iter->control )->SetValue( *(bool*) iter->dest );
161  break;
162 
163  case CFG_CTRL_TEXT:
164  static_cast<wxTextCtrl*>( iter->control )->SetValue( *(wxString*) iter->dest );
165  break;
166 
168  static_cast<UNIT_BINDER*>( iter->control )->SetValue( *(int*) iter->dest );
169  break;
170 
171  case CFG_CTRL_CHOICE:
172  static_cast<wxChoice*>( iter->control )->SetSelection( *(int*) iter->dest );
173  break;
174 
175  case CFG_CTRL_RADIOBOX:
176  static_cast<wxRadioBox*>( iter->control )->SetSelection( *(int*) iter->dest );
177  break;
178 
179  case CFG_CTRL_TAB:
180  static_cast<wxNotebook*>( iter->control )->SetSelection( *(int*) iter->dest );
181  break;
182 
183  default:
184  wxASSERT_MSG( false, wxString(
185  "Unhandled control type for config restore: " ) << iter->type );
186  }
187  }
188  }
std::vector< CONFIG_CTRL_T > ctrls
void DIALOG_CREATE_ARRAY::setControlEnablement ( )
private

Definition at line 376 of file dialog_create_array.cpp.

References DIALOG_CREATE_ARRAY_BASE::m_checkBoxGridReverseNumbering, DIALOG_CREATE_ARRAY_BASE::m_choicePriAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_choiceSecAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStart, DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_labelGridNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_labelPriAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_labelSecAxisNumbering, m_numberingEnabled, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingAxis, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingScheme, DIALOG_CREATE_ARRAY_BASE::m_rbCircStartNumberingOpt, and DIALOG_CREATE_ARRAY_BASE::m_rbGridStartNumberingOpt.

Referenced by DIALOG_CREATE_ARRAY(), and OnParameterChanged().

377 {
378  if ( m_numberingEnabled )
379  {
380  const bool renumber = m_rbGridStartNumberingOpt->GetSelection() == 1;
381 
382  // If we're not renumbering, we can't set the numbering scheme
383  // or axis numbering types
384  m_radioBoxGridNumberingScheme->Enable( renumber );
385  m_labelPriAxisNumbering->Enable( renumber );
386  m_choicePriAxisNumbering->Enable( renumber );
387 
388  // Disable the secondary axis numbering option if the
389  // numbering scheme doesn't have two axes
390  const bool num2d = m_radioBoxGridNumberingScheme->GetSelection() != 0;
391 
392  m_labelSecAxisNumbering->Enable( renumber && num2d );
393  m_choiceSecAxisNumbering->Enable( renumber && num2d );
394 
395  // We can only set an offset if we renumber
396  m_labelGridNumberingOffset->Enable( renumber );
397  m_entryGridPriNumberingOffset->Enable( renumber );
398  m_entryGridSecNumberingOffset->Enable( renumber && num2d );
399 
400  m_entryCircNumberingStart->Enable( m_rbCircStartNumberingOpt->GetSelection() == 1 );
401  }
402  else
403  {
404  // grid
405  m_rbGridStartNumberingOpt->Enable( false );
406  m_checkBoxGridReverseNumbering->Enable( false );
407  m_radioBoxGridNumberingAxis->Enable( false );
408  m_radioBoxGridNumberingScheme->Enable( false );
409  m_choiceSecAxisNumbering->Enable( false );
410  m_choicePriAxisNumbering->Enable( false );
411  m_entryGridPriNumberingOffset->Enable( false );
412  m_entryGridSecNumberingOffset->Enable( false );
413 
414  // circular
415  m_rbCircStartNumberingOpt->Enable( false );
416  m_entryCircNumberingStart->Enable( false );
417  }
418 }
void DIALOG_SHIM::SetInitialFocus ( wxWindow *  aWindow)
inlineinherited

Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.

Definition at line 86 of file dialog_shim.h.

References DIALOG_SHIM::EndQuasiModal(), DIALOG_SHIM::m_initialFocusTarget, and DIALOG_SHIM::ShowQuasiModal().

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_SET_GRID::DIALOG_SET_GRID(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked(), PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE(), PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), and LIB_EDIT_FRAME::savePartAs().

87  {
88  m_initialFocusTarget = aWindow;
89  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:150
void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
aKiwayis often from a parent window, or from KIFACE::CreateWindow().

Definition at line 47 of file kiway_holder.cpp.

References KIWAY_HOLDER::m_kiway, and name.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), InvokePcbLibTableEditor(), KIWAY_HOLDER::Kiway(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

48 {
49 #if defined(DEBUG)
50  // offer a trap point for debugging most any window
51  wxASSERT( aDest );
52  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
53  {
54  int breakhere=1;
55  (void) breakhere;
56  }
57 #endif
58 
59  (void) aDest;
60 
61  m_kiway = aKiway;
62 }
KIWAY * m_kiway
Definition: kiway_player.h:94
const char * name
Definition: DXF_plotter.cpp:61
void DIALOG_SHIM::SetSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 134 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::GetUserUnits(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

135 {
136  wxSize sz( x, y );
137  SetSize( ConvertDialogToPixels( sz ) );
138 }
bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 162 of file dialog_shim.cpp.

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, max, wxPoint::x, and wxPoint::y.

Referenced by DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), DIALOG_SHIM::IsQuasiModal(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_SCH_FIND::OnCancel(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), DIALOG_SHIM::ShowQuasiModal(), and DIALOG_POSITION_RELATIVE::UpdateAnchor().

163 {
164  bool ret;
165  const char* hash_key;
166 
167  if( m_hash_key.size() )
168  {
169  // a special case like EDA_LIST_DIALOG, which has multiple uses.
170  hash_key = m_hash_key.c_str();
171  }
172  else
173  {
174  hash_key = typeid(*this).name();
175  }
176 
177  // Show or hide the window. If hiding, save current position and size.
178  // If showing, use previous position and size.
179  if( show )
180  {
181 #ifndef __WINDOWS__
182  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
183 #endif
184  ret = wxDialog::Show( show );
185 
186  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
187  EDA_RECT savedDialogRect = class_map[ hash_key ];
188 
189  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
190  {
191  SetSize( savedDialogRect.GetPosition().x,
192  savedDialogRect.GetPosition().y,
193  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
194  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
195  0 );
196  }
197 
198  // Be sure that the dialog appears in a visible area
199  // (the dialog position might have been stored at the time when it was
200  // shown on another display)
201  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
202  Centre();
203  }
204  else
205  {
206  // Save the dialog's position & size before hiding, using classname as key
207  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
208 
209 #ifdef __WXMAC__
210  if ( m_eventLoop )
211  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
212 #endif
213 
214  ret = wxDialog::Show( show );
215  }
216 
217  return ret;
218 }
const wxSize GetSize() const
Definition: eda_rect.h:101
std::string m_hash_key
Definition: dialog_shim.h:144
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:113
#define max(a, b)
Definition: auxiliary.h:86
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 327 of file dialog_shim.cpp.

References DBG, DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, DIALOG_SHIM::Show(), and WX_EVENT_LOOP.

Referenced by SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), SCH_EDIT_FRAME::InstallHierarchyFrame(), PCB_BASE_FRAME::InstallPadOptionsFrame(), InvokeDialogEditComponentsLibId(), InvokeDialogUpdateFields(), LIB_EDIT_FRAME::OnEditComponentProperties(), PCB_EDIT_FRAME::OnEditTracksAndVias(), SCH_EDIT_FRAME::OnLaunchBomManager(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), EDIT_TOOL::Properties(), SCH_BASE_FRAME::SelectComponentFromLibTree(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), and DIALOG_SHIM::SetInitialFocus().

328 {
329  // This is an exception safe way to zero a pointer before returning.
330  // Yes, even though DismissModal() clears this first normally, this is
331  // here in case there's an exception before the dialog is dismissed.
332  struct NULLER
333  {
334  void*& m_what;
335  NULLER( void*& aPtr ) : m_what( aPtr ) {}
336  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
337  } clear_this( (void*&) m_qmodal_loop );
338 
339  // release the mouse if it's currently captured as the window having it
340  // will be disabled when this dialog is shown -- but will still keep the
341  // capture making it impossible to do anything in the modal dialog itself
342  wxWindow* win = wxWindow::GetCapture();
343  if( win )
344  win->ReleaseMouse();
345 
346  // Get the optimal parent
347  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
348 
349  // Show the optimal parent
350  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
351 
352  wxASSERT_MSG( !m_qmodal_parent_disabler,
353  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
354 
355  // quasi-modal: disable only my "optimal" parent
357 
358 #ifdef __WXMAC__
359  // Apple in its infinite wisdom will raise a disabled window before even passing
360  // us the event, so we have no way to stop it. Instead, we must set an order on
361  // the windows so that the quasi-modal will be pushed in front of the disabled
362  // window when it is raised.
363  ReparentQuasiModal();
364 #endif
365  Show( true );
366 
367  m_qmodal_showing = true;
368 
369  WX_EVENT_LOOP event_loop;
370 
371  m_qmodal_loop = &event_loop;
372 
373  event_loop.Run();
374 
375  m_qmodal_showing = false;
376 
377  return GetReturnCode();
378 }
bool m_qmodal_showing
Definition: dialog_shim.h:154
#define WX_EVENT_LOOP
Definition: kiway_player.h:100
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:153
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:155
Toggle a window&#39;s "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:33
#define DBG(x)
Definition: fctsys.h:33
bool DIALOG_CREATE_ARRAY::TransferDataFromWindow ( )
overrideprivate

Definition at line 262 of file dialog_create_array.cpp.

References DEGREES, DoubleValueFromString(), UNIT_BINDER::GetValue(), DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_2dArrayNumbering, DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::m_angle, DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::m_centre, DIALOG_CREATE_ARRAY_BASE::m_checkBoxGridReverseNumbering, DIALOG_CREATE_ARRAY_BASE::m_choicePriAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_choiceSecAxisNumbering, DIALOG_CREATE_ARRAY_BASE::m_circularPanel, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_delta, DIALOG_CREATE_ARRAY_BASE::m_entryCircAngle, DIALOG_CREATE_ARRAY_BASE::m_entryCircCount, DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStart, DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingOffset, DIALOG_CREATE_ARRAY_BASE::m_entryNx, DIALOG_CREATE_ARRAY_BASE::m_entryNy, DIALOG_CREATE_ARRAY_BASE::m_entryRotateItemsCb, DIALOG_CREATE_ARRAY_BASE::m_entryStagger, DIALOG_CREATE_ARRAY_BASE::m_gridPanel, DIALOG_CREATE_ARRAY_BASE::m_gridTypeNotebook, m_hCentre, m_hOffset, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_horizontalThenVertical, m_hSpacing, DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::m_nPts, m_numberingEnabled, DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::m_numberingOffset, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_numberingOffsetX, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_numberingOffsetY, DIALOG_CREATE_ARRAY::ARRAY_OPTIONS::m_numberingStartIsSpecified, DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::m_numberingType, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_nx, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_ny, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_offset, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_priAxisNumType, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingAxis, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingScheme, DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridStaggerType, DIALOG_CREATE_ARRAY_BASE::m_rbCircStartNumberingOpt, DIALOG_CREATE_ARRAY_BASE::m_rbGridStartNumberingOpt, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_reverseNumberingAlternate, DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::m_rotateItems, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_secAxisNumType, m_settings, DIALOG_CREATE_ARRAY::ARRAY_OPTIONS::m_shouldNumber, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_stagger, DIALOG_CREATE_ARRAY::ARRAY_GRID_OPTIONS::m_stagger_rows, m_vCentre, m_vOffset, m_vSpacing, NUMBERING_NUMERIC, CONFIG_SAVE_RESTORE_WINDOW::ReadConfigFromControls(), validateLongEntry(), validateNumberingTypeAndOffset(), wxPoint::x, and wxPoint::y.

263 {
264  ARRAY_OPTIONS* newSettings = NULL;
265  wxArrayString errors;
266  const wxWindow* page = m_gridTypeNotebook->GetCurrentPage();
267 
268  if( page == m_gridPanel )
269  {
270  ARRAY_GRID_OPTIONS* newGrid = new ARRAY_GRID_OPTIONS();
271  bool ok = true;
272 
273  // ints
274  ok = ok && validateLongEntry(*m_entryNx, newGrid->m_nx, _("horizontal count"), errors);
275  ok = ok && validateLongEntry(*m_entryNy, newGrid->m_ny, _("vertical count"), errors);
276 
277  newGrid->m_delta.x = m_hSpacing.GetValue();
278  newGrid->m_delta.y = m_vSpacing.GetValue();
279 
280  newGrid->m_offset.x = m_hOffset.GetValue();
281  newGrid->m_offset.y = m_vOffset.GetValue();
282 
283  ok = ok && validateLongEntry(*m_entryStagger, newGrid->m_stagger, _("stagger"), errors);
284 
285  newGrid->m_stagger_rows = m_radioBoxGridStaggerType->GetSelection() == 0;
286 
287  newGrid->m_horizontalThenVertical = m_radioBoxGridNumberingAxis->GetSelection() == 0;
288  newGrid->m_reverseNumberingAlternate = m_checkBoxGridReverseNumbering->GetValue();
289 
290  newGrid->m_shouldNumber = m_numberingEnabled;
291 
292  if ( m_numberingEnabled )
293  {
294  newGrid->m_2dArrayNumbering = m_radioBoxGridNumberingScheme->GetSelection() != 0;
295 
296  bool numOk = validateNumberingTypeAndOffset(
298  newGrid->m_priAxisNumType, newGrid->m_numberingOffsetX,
299  errors );
300 
301  if( newGrid->m_2dArrayNumbering )
302  {
305  newGrid->m_secAxisNumType, newGrid->m_numberingOffsetY,
306  errors ) && numOk;
307  }
308 
309  ok = ok && numOk;
310 
311  newGrid->m_numberingStartIsSpecified = m_rbGridStartNumberingOpt->GetSelection() == 1;
312  }
313 
314  // Only use settings if all values are good
315  if( ok )
316  newSettings = newGrid;
317  else
318  delete newGrid;
319  }
320  else if( page == m_circularPanel )
321  {
322  ARRAY_CIRCULAR_OPTIONS* newCirc = new ARRAY_CIRCULAR_OPTIONS();
323  bool ok = true;
324 
325  newCirc->m_centre.x = m_hCentre.GetValue();
326  newCirc->m_centre.y = m_vCentre.GetValue();
327  newCirc->m_angle = DoubleValueFromString( DEGREES, m_entryCircAngle->GetValue() );
328 
329  ok = ok && validateLongEntry(*m_entryCircCount, newCirc->m_nPts, _("point count"), errors);
330 
331  newCirc->m_rotateItems = m_entryRotateItemsCb->GetValue();
332  newCirc->m_shouldNumber = m_numberingEnabled;
333 
334  if ( m_numberingEnabled )
335  {
336  newCirc->m_numberingStartIsSpecified = m_rbCircStartNumberingOpt->GetSelection() == 1;
337  newCirc->m_numberingType = NUMBERING_NUMERIC;
338 
339  ok = ok && validateLongEntry(*m_entryCircNumberingStart, newCirc->m_numberingOffset,
340  _("numbering start"), errors);
341  }
342 
343  // Only use settings if all values are good
344  if( ok )
345  newSettings = newCirc;
346  else
347  delete newCirc;
348  }
349 
350  // If we got good settings, send them out and finish
351  if( newSettings )
352  {
353  delete m_settings;
354 
355  // assign pointer and ownership here
356  m_settings = newSettings;
358 
359  return true;
360  }
361  else
362  {
363  wxString errorStr;
364 
365  if( errors.IsEmpty() )
366  errorStr = _("Bad parameters");
367  else
368  errorStr = boost::algorithm::join( errors, "\n" );
369 
370  wxMessageBox( errorStr );
371  return false;
372  }
373 }
Arabic numerals: 0,1,2,3,4,5,6,7,8,9,10,11...
ARRAY_OPTIONS * m_settings
The settings object returned to the caller.
static bool validateLongEntry(const wxTextEntry &entry, long &dest, const wxString &description, wxArrayString &errors)
Validate and save a long integer entry.
virtual int GetValue()
Function GetValue Returns the current value in Internal Units.
static bool validateNumberingTypeAndOffset(const wxTextCtrl &offsetEntry, const wxChoice &typeEntry, DIALOG_CREATE_ARRAY::NUMBERING_TYPE_T &type, int &offset, wxArrayString &errors)
Validates and saves (if valid) the type and offset of an array axis numbering.
double DoubleValueFromString(EDA_UNITS_T aUnits, const wxString &aTextValue, bool aUseMils)
Function DoubleValueFromString converts aTextValue to a double.
Definition: base_units.cpp:302
int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 148 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), and DIALOG_SHIM::GetUserUnits().

149 {
150  wxSize sz( 0, y );
151  return ConvertDialogToPixels( sz ).y;
152 }

Member Data Documentation

wxCheckBox* DIALOG_CREATE_ARRAY_BASE::m_checkBoxGridReverseNumbering
protectedinherited
wxChoice* DIALOG_CREATE_ARRAY_BASE::m_choicePriAxisNumbering
protectedinherited
wxChoice* DIALOG_CREATE_ARRAY_BASE::m_choiceSecAxisNumbering
protectedinherited
wxStaticBoxSizer* DIALOG_CREATE_ARRAY_BASE::m_circPadNumberingSizer
protectedinherited
UNIT_BINDER DIALOG_CREATE_ARRAY::m_circRadius
private

Definition at line 362 of file dialog_create_array.h.

Referenced by calculateCircularArrayProperties().

wxPanel* DIALOG_CREATE_ARRAY_BASE::m_circularPanel
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCentreX
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCentreY
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCircAngle
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryCircNumberingStart
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryDx
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryDy
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryGridPriNumberingOffset
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryGridSecNumberingOffset
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryOffsetX
protectedinherited
wxTextCtrl* DIALOG_CREATE_ARRAY_BASE::m_entryOffsetY
protectedinherited
wxCheckBox* DIALOG_CREATE_ARRAY_BASE::m_entryRotateItemsCb
protectedinherited
bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 149 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

wxBoxSizer* DIALOG_CREATE_ARRAY_BASE::m_gridPadNumberingSizer
protectedinherited
wxPanel* DIALOG_CREATE_ARRAY_BASE::m_gridPanel
protectedinherited
wxNotebook* DIALOG_CREATE_ARRAY_BASE::m_gridTypeNotebook
protectedinherited
UNIT_BINDER DIALOG_CREATE_ARRAY::m_hCentre
private
UNIT_BINDER DIALOG_CREATE_ARRAY::m_hOffset
private

Definition at line 360 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().

UNIT_BINDER DIALOG_CREATE_ARRAY::m_hSpacing
private

Definition at line 359 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 150 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint(), and DIALOG_SHIM::SetInitialFocus().

wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCentreX
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCentreY
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircAngle
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircCount
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircNumStart
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircRadius
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelCircRotate
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelDx
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelDy
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelGridNumberingOffset
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelNx
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelNy
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelOffsetX
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelOffsetY
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelPriAxisNumbering
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelSecAxisNumbering
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_labelStagger
protectedinherited
bool DIALOG_CREATE_ARRAY::m_numberingEnabled
private

Definition at line 412 of file dialog_create_array.h.

Referenced by setControlEnablement(), and TransferDataFromWindow().

DIALOG_CREATE_ARRAY::CREATE_ARRAY_DIALOG_ENTRIES DIALOG_CREATE_ARRAY::m_options
staticprivate

Definition at line 415 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY().

const wxPoint DIALOG_CREATE_ARRAY::m_originalItemPosition
private

Definition at line 367 of file dialog_create_array.h.

Referenced by calculateCircularArrayProperties().

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 153 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited
bool DIALOG_SHIM::m_qmodal_showing
protectedinherited

Definition at line 154 of file dialog_shim.h.

Referenced by DIALOG_SHIM::IsQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingAxis
protectedinherited
wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridNumberingScheme
protectedinherited
wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_radioBoxGridStaggerType
protectedinherited
wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_rbCircStartNumberingOpt
protectedinherited
wxRadioBox* DIALOG_CREATE_ARRAY_BASE::m_rbGridStartNumberingOpt
protectedinherited
ARRAY_OPTIONS* DIALOG_CREATE_ARRAY::m_settings
private

The settings object returned to the caller.

We retain ownership of this

Definition at line 357 of file dialog_create_array.h.

Referenced by TransferDataFromWindow(), and ~DIALOG_CREATE_ARRAY().

wxStdDialogButtonSizer* DIALOG_CREATE_ARRAY_BASE::m_stdButtons
protectedinherited
wxButton* DIALOG_CREATE_ARRAY_BASE::m_stdButtonsCancel
protectedinherited
wxButton* DIALOG_CREATE_ARRAY_BASE::m_stdButtonsOK
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelCentreX
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelCentreY
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelCircAngle
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelCircRadius
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelDx
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelDy
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelOffsetX
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_unitLabelOffsetY
protectedinherited
wxStaticText* DIALOG_CREATE_ARRAY_BASE::m_valueCircRadius
protectedinherited
UNIT_BINDER DIALOG_CREATE_ARRAY::m_vCentre
private
UNIT_BINDER DIALOG_CREATE_ARRAY::m_vOffset
private

Definition at line 360 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().

UNIT_BINDER DIALOG_CREATE_ARRAY::m_vSpacing
private

Definition at line 359 of file dialog_create_array.h.

Referenced by DIALOG_CREATE_ARRAY(), and TransferDataFromWindow().


The documentation for this class was generated from the following files: