KiCad PCB EDA Suite
DIALOG_MOVE_EXACT Class Reference

#include <dialog_move_exact.h>

Inheritance diagram for DIALOG_MOVE_EXACT:
DIALOG_MOVE_EXACT_BASE DIALOG_SHIM KIWAY_HOLDER

Classes

struct  MOVE_EXACT_OPTIONS
 Persistent dialog options. More...
 

Public Member Functions

 DIALOG_MOVE_EXACT (PCB_BASE_FRAME *aParent, MOVE_PARAMETERS &aParams)
 
 ~DIALOG_MOVE_EXACT ()
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
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...
 

Protected Attributes

wxBoxSizer * bMainSizer
 
wxCheckBox * m_polarCoords
 
wxStaticText * m_xLabel
 
TEXT_CTRL_EVALm_xEntry
 
wxStaticText * m_xUnit
 
wxButton * m_clearX
 
wxStaticText * m_yLabel
 
TEXT_CTRL_EVALm_yEntry
 
wxStaticText * m_yUnit
 
wxButton * m_clearY
 
wxStaticText * m_rotLabel
 
TEXT_CTRL_EVALm_rotEntry
 
wxStaticText * m_rotUnit
 
wxButton * m_clearRot
 
wxRadioBox * m_originChooser
 
wxBoxSizer * bAnchorSizer
 
wxCheckBox * m_cbOverride
 
wxChoice * m_anchorChoice
 
wxStaticLine * m_staticline1
 
wxStdDialogButtonSizer * m_stdButtons
 
wxButton * m_stdButtonsOK
 
wxButton * m_stdButtonsCancel
 
bool m_fixupsRun
 
std::string m_hash_key
 
EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

void OnTextFocusLost (wxFocusEvent &event) override
 
void OnPolarChanged (wxCommandEvent &event) override
 
void OnClear (wxCommandEvent &event) override
 
void OnOriginChanged (wxCommandEvent &event) override
 
void OnOverrideChanged (wxCommandEvent &event) override
 
void OnOkClick (wxCommandEvent &event) override
 
void ToPolarDeg (double x, double y, double &r, double &q)
 Convert a given Cartesian point into a polar representation. More...
 
bool GetTranslationInIU (wxPoint &val, bool polar)
 Get the (Cartesian) translation described by the text entries. More...
 
void updateDlgTexts (bool aPolar)
 

Private Attributes

PCB_BASE_FRAMEm_parent
 
wxPointm_translation
 
double & m_rotation
 
MOVE_EXACT_ORIGINm_origin
 
MOVE_EXACT_ANCHORm_anchor
 
bool & m_allowOverride
 
bool & m_editingFootprint
 

Static Private Attributes

static MOVE_EXACT_OPTIONS m_options
 

Detailed Description

Definition at line 62 of file dialog_move_exact.h.

Constructor & Destructor Documentation

DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT ( PCB_BASE_FRAME aParent,
MOVE_PARAMETERS aParams 
)

Definition at line 39 of file dialog_move_exact.cpp.

References DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::anchor, ANCHOR_CENTER_FOOTPRINT, ANCHOR_FROM_LIBRARY, ANCHOR_TOP_LEFT_PAD, DIALOG_MOVE_EXACT_BASE::bAnchorSizer, DIALOG_MOVE_EXACT_BASE::bMainSizer, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::entry1, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::entry2, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::entryRotation, g_UserUnit, GetAbbreviatedUnitsLabel(), PCB_BASE_FRAME::GetAuxOrigin(), PCB_BASE_FRAME::GetGridOrigin(), PCB_BASE_FRAME::GetScreen(), m_allowOverride, DIALOG_MOVE_EXACT_BASE::m_anchorChoice, DIALOG_MOVE_EXACT_BASE::m_cbOverride, m_editingFootprint, BASE_SCREEN::m_O_Curseur, m_options, DIALOG_MOVE_EXACT_BASE::m_originChooser, DIALOG_MOVE_EXACT_BASE::m_polarCoords, DIALOG_MOVE_EXACT_BASE::m_rotEntry, DIALOG_MOVE_EXACT_BASE::m_stdButtonsOK, DIALOG_MOVE_EXACT_BASE::m_xEntry, DIALOG_MOVE_EXACT_BASE::m_xUnit, DIALOG_MOVE_EXACT_BASE::m_yEntry, DIALOG_MOVE_EXACT_BASE::m_yUnit, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::origin, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::overrideAnchor, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::polarCoords, RELATIVE_TO_CURRENT_POSITION, RELATIVE_TO_DRILL_PLACE_ORIGIN, RELATIVE_TO_GRID_ORIGIN, RELATIVE_TO_USER_ORIGIN, and updateDlgTexts().

39  :
40  DIALOG_MOVE_EXACT_BASE( aParent ),
41  m_parent( aParent ),
42  m_translation( aParams.translation ),
43  m_rotation( aParams.rotation ),
44  m_origin( aParams.origin ),
45  m_anchor( aParams.anchor ),
46  m_allowOverride( aParams.allowOverride ),
48 {
49  // set the unit labels
50  m_xUnit->SetLabelText( GetAbbreviatedUnitsLabel( g_UserUnit ) );
51  m_yUnit->SetLabelText( GetAbbreviatedUnitsLabel( g_UserUnit ) );
52 
53  // tabbing goes through the entries in sequence
54  m_yEntry->MoveAfterInTabOrder( m_xEntry );
55  m_rotEntry->MoveAfterInTabOrder( m_yEntry );
56 
57  // and set up the entries according to the saved options
58  m_polarCoords->SetValue( m_options.polarCoords );
59  m_xEntry->SetValue( wxString::FromDouble( m_options.entry1 ) );
60  m_yEntry->SetValue( wxString::FromDouble( m_options.entry2 ) );
61  m_rotEntry->SetValue( wxString::FromDouble( m_options.entryRotation ) );
62  m_originChooser->SetSelection( m_options.origin );
63 
64  if( m_allowOverride )
65  {
68 
69  // ME_ANCHOR_FROM_LIBRARY is not in the wxChoice options so show the first choice instead
71  {
72  m_anchorChoice->SetSelection( ANCHOR_TOP_LEFT_PAD );
73  }
74  else
75  {
76  m_anchorChoice->SetSelection( m_options.anchor );
77  }
78 
80  {
81  // no footprint override necessary in this mode
82  m_cbOverride->Disable();
83  m_anchorChoice->Disable();
84  }
85 
86  if( m_editingFootprint )
87  {
88  // there is no point in showing the center footprint option when editing footprints
90  }
91  }
92  else
93  {
94  // hide the checkbox and choice control if overides are not allowed
95  bMainSizer->Hide( bAnchorSizer, true );
96  }
97 
98  if( wxPoint( 0, 0 ) == aParent->GetScreen()->m_O_Curseur )
99  {
100  // disble the user origin option when the user oigin is not set
101  m_originChooser->Enable( RELATIVE_TO_USER_ORIGIN, false );
102  m_originChooser->SetItemToolTip( RELATIVE_TO_USER_ORIGIN,
103  wxString( "The user origin is currently not set\n"
104  "Set it by using the <space> hotkey" ) );
105  }
106 
107  if( wxPoint( 0, 0 ) == aParent->GetGridOrigin() )
108  {
109  // disble the grid origin option when the user oigin is not set
110  m_originChooser->Enable( RELATIVE_TO_GRID_ORIGIN, false );
111  m_originChooser->SetItemToolTip( RELATIVE_TO_GRID_ORIGIN,
112  wxString( "The grid origin is currently not set\n"
113  "Set it by using the tool in the <place> menu" ) );
114  }
115 
116  if( wxPoint( 0, 0 ) == aParent->GetAuxOrigin() )
117  {
118  // disble the grid origin option when the drill/place oigin is not set
121  wxString( "The drill/place origin is currently not set\n"
122  "Set it by using the tool in the <place> menu" ) );
123  }
124 
125  updateDlgTexts( m_polarCoords->IsChecked() );
126 
127  m_stdButtonsOK->SetDefault();
128 
129  GetSizer()->SetSizeHints( this );
130  Layout();
131 }
const wxPoint & GetGridOrigin() const override
Function GetGridOrigin returns the absolute coordinates of the origin of the snap grid...
MOVE_EXACT_ORIGIN origin
MOVE_EXACT_ORIGIN & m_origin
wxPoint m_O_Curseur
Relative Screen cursor coordinate (on grid) in user units.
const wxPoint & GetAuxOrigin() const override
Function GetAuxOrigin returns the origin of the axis used for plotting and various exports...
DIALOG_MOVE_EXACT_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Move Item"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
void updateDlgTexts(bool aPolar)
wxString GetAbbreviatedUnitsLabel(EDA_UNITS_T aUnit)
Definition: base_units.cpp:484
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
PCB_SCREEN * GetScreen() const override
Function GetScreen returns a pointer to a BASE_SCREEN or one of its derivatives.
MOVE_EXACT_ANCHOR & m_anchor
static MOVE_EXACT_OPTIONS m_options
PCB_BASE_FRAME * m_parent
MOVE_EXACT_ANCHOR anchor
DIALOG_MOVE_EXACT::~DIALOG_MOVE_EXACT ( )

Definition at line 134 of file dialog_move_exact.cpp.

135 {
136 }

Member Function Documentation

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 189 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues().

190 {
191  // so we can do logging of this state change:
192 
193 #if defined(DEBUG)
194  const char* type_id = typeid( *this ).name();
195  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
196 #endif
197 
198  return wxDialog::Enable( enable );
199 }
void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 589 of file dialog_shim.cpp.

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

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_ONE_FIELD::OnCancelClick(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCloseDialog(), DIALOG_EDIT_ONE_FIELD::OnCloseDialog(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_EDIT_ONE_FIELD::OnOkClick(), DIALOG_EXCHANGE_MODULE::OnQuit(), DIALOG_CHOOSE_COMPONENT::OnSchViewDClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), and DIALOG_SHIM::~DIALOG_SHIM().

590 {
591  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
592  // handle validation in the same way as other dialogs.
593  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
594  return;
595 
596  SetReturnCode( retCode );
597 
598  if( !IsQuasiModal() )
599  {
600  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
601  return;
602  }
603 
604  m_qmodal_showing = false;
605 
606  if( m_qmodal_loop )
607  {
608  if( m_qmodal_loop->IsRunning() )
609  m_qmodal_loop->Exit( 0 );
610  else
611  m_qmodal_loop->ScheduleExit( 0 );
612 
613  m_qmodal_loop = NULL;
614  }
615 
618 
619  Show( false );
620 }
bool m_qmodal_showing
Definition: dialog_shim.h:155
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:154
bool IsQuasiModal()
Definition: dialog_shim.h:103
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:156
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 104 of file dialog_shim.cpp.

References PCAD2KICAD::Center.

Referenced by COLOR4D_PICKER_DLG::COLOR4D_PICKER_DLG(), DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG(), 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_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PADS_MASK_CLEARANCE::DIALOG_PADS_MASK_CLEARANCE(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_PRETTY_LIB::DIALOG_SELECT_PRETTY_LIB(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_EDIT_ONE_FIELD::init(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_LIB_EDIT_PIN::OnInitDialog(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnInitDialog(), DIALOG_TRACK_VIA_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEMS_OPTIONS::OnInitDlg(), DIALOG_EDIT_FPTEXT::OnInitDlg(), DIALOG_SET_GRID::OnInitDlg(), DIALOG_PCB_TEXT_PROPERTIES::OnInitDlg(), DIALOG_PRINT_FOR_MODEDIT::OnInitDlg(), DIALOG_MODULE_MODULE_EDITOR::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_MODULE_BOARD_EDITOR::OnInitDlg(), DIALOG_PRINT_USING_PRINTER::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), TARGET_PROPERTIES_DIALOG_EDITOR::TARGET_PROPERTIES_DIALOG_EDITOR(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), and DIALOG_UPDATE_FIELDS::TransferDataToWindow().

105 {
106  // must be called from the constructor of derived classes,
107  // when all widgets are initialized, and therefore their size fixed
108 
109  // SetSizeHints fixes the minimal size of sizers in the dialog
110  // (SetSizeHints calls Fit(), so no need to call it)
111  GetSizer()->SetSizeHints( this );
112 
113  // the default position, when calling the first time the dlg
114  Center();
115 }
bool DIALOG_MOVE_EXACT::GetTranslationInIU ( wxPoint val,
bool  polar 
)
private

Get the (Cartesian) translation described by the text entries.

Parameters
valoutput translation vector
polarinterpret as polar coords
Returns
false if error (though the text conversion functions don't report errors)

Definition at line 148 of file dialog_move_exact.cpp.

References DEG2RAD(), DEGREES, DoubleValueFromString(), DIALOG_MOVE_EXACT_BASE::m_xEntry, DIALOG_MOVE_EXACT_BASE::m_yEntry, ValueFromTextCtrl(), wxPoint::x, and wxPoint::y.

Referenced by OnOkClick(), and OnPolarChanged().

149 {
150  if( polar )
151  {
152  const int r = ValueFromTextCtrl( *m_xEntry );
153  const double q = DoubleValueFromString( DEGREES, m_yEntry->GetValue() );
154 
155  val.x = r * cos( DEG2RAD( q / 10.0 ) );
156  val.y = r * sin( DEG2RAD( q / 10.0 ) );
157  }
158  else
159  {
160  // direct read
161  val.x = ValueFromTextCtrl( *m_xEntry );
162  val.y = ValueFromTextCtrl( *m_yEntry );
163  }
164 
165  // no validation to do here, but in future, you could return false here
166  return true;
167 }
int ValueFromTextCtrl(const wxTextCtrl &aTextCtr)
Convert the number Value in a string according to the internal units and the selected unit (g_UserUni...
Definition: base_units.cpp:385
double DEG2RAD(double deg)
Definition: trigo.h:199
double DoubleValueFromString(EDA_UNITS_T aUnits, const wxString &aTextValue)
Function DoubleValueFromString converts aTextValue to a double.
Definition: base_units.cpp:302
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 125 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT().

126 {
127  wxSize sz( x, 0 );
128  return ConvertDialogToPixels( sz ).x;
129 }
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::m_kiway.

Referenced by SCH_EDIT_FRAME::AppendSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), CVPCB_MAINFRAME::CreateScreenCmp(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_SHIM::DIALOG_SHIM(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), SCH_EDIT_FRAME::ImportFile(), PCB_EDIT_FRAME::ImportFile(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), PCB_EDIT_FRAME::InstallModuleOptionsFrame(), KIWAY_PLAYER::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnLeftClick(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateReplaceModuleInBoard(), 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(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::rescueProject(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), 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(), DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_EDIT_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::showButtonHandler(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::showButtonHandler(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_MODULE::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:85
void DIALOG_MOVE_EXACT::OnClear ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MOVE_EXACT_BASE.

Definition at line 251 of file dialog_move_exact.cpp.

References DIALOG_MOVE_EXACT_BASE::m_clearRot, DIALOG_MOVE_EXACT_BASE::m_clearX, DIALOG_MOVE_EXACT_BASE::m_clearY, DIALOG_MOVE_EXACT_BASE::m_rotEntry, DIALOG_MOVE_EXACT_BASE::m_xEntry, and DIALOG_MOVE_EXACT_BASE::m_yEntry.

252 {
253  wxObject* obj = event.GetEventObject();
254  wxTextCtrl* entry = NULL;
255 
256  if( obj == m_clearX )
257  {
258  entry = m_xEntry;
259  }
260  else if( obj == m_clearY )
261  {
262  entry = m_yEntry;
263  }
264  else if( obj == m_clearRot )
265  {
266  entry = m_rotEntry;
267  }
268 
269  if( entry )
270  entry->SetValue( "0" );
271 }
virtual void DIALOG_MOVE_EXACT_BASE::OnClose ( wxCloseEvent &  event)
inlineprotectedvirtualinherited
void DIALOG_MOVE_EXACT::OnOkClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MOVE_EXACT_BASE.

Definition at line 274 of file dialog_move_exact.cpp.

References DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::anchor, ANCHOR_FROM_LIBRARY, DEGREES, DoubleValueFromString(), DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::entry1, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::entry2, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::entryRotation, PCB_BASE_FRAME::GetAuxOrigin(), PCB_BASE_FRAME::GetGridOrigin(), PCB_BASE_FRAME::GetScreen(), GetTranslationInIU(), m_allowOverride, m_anchor, DIALOG_MOVE_EXACT_BASE::m_anchorChoice, DIALOG_MOVE_EXACT_BASE::m_cbOverride, BASE_SCREEN::m_O_Curseur, m_options, m_origin, DIALOG_MOVE_EXACT_BASE::m_originChooser, m_parent, DIALOG_MOVE_EXACT_BASE::m_polarCoords, m_rotation, DIALOG_MOVE_EXACT_BASE::m_rotEntry, m_translation, DIALOG_MOVE_EXACT_BASE::m_xEntry, DIALOG_MOVE_EXACT_BASE::m_yEntry, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::origin, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::overrideAnchor, DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS::polarCoords, RELATIVE_TO_CURRENT_POSITION, RELATIVE_TO_DRILL_PLACE_ORIGIN, RELATIVE_TO_GRID_ORIGIN, RELATIVE_TO_SHEET_ORIGIN, RELATIVE_TO_USER_ORIGIN, and UNSCALED_UNITS.

275 {
277  m_origin = static_cast<MOVE_EXACT_ORIGIN>( m_originChooser->GetSelection() );
278 
279  if( m_cbOverride->IsChecked() && m_allowOverride )
280  {
281  m_anchor = static_cast<MOVE_EXACT_ANCHOR>( m_anchorChoice->GetSelection() );
282  }
283  else
284  {
286  }
287 
288  wxPoint move_vector, origin;
289  // for the output, we only deliver a Cartesian vector
290  bool ok = GetTranslationInIU( move_vector, m_polarCoords->IsChecked() );
291 
292  switch( m_origin )
293  {
295  origin = m_parent->GetScreen()->m_O_Curseur;
296  break;
297 
299  origin = m_parent->GetGridOrigin();
300  break;
301 
303  origin = m_parent->GetAuxOrigin();
304  break;
305 
307  origin = wxPoint( 0, 0 );
308  break;
309 
311  // relative movement means that only the translation values should be used:
312  // -> set origin and anchor to zero
313  origin = wxPoint( 0, 0 );
314  break;
315  }
316 
317  m_translation = move_vector + origin;
318 
319  if( ok )
320  {
321  // save the settings
322  m_options.polarCoords = m_polarCoords->GetValue();
327  m_options.anchor = static_cast<MOVE_EXACT_ANCHOR>( m_anchorChoice->GetSelection() );
328  m_options.overrideAnchor = m_cbOverride->IsChecked();
329  event.Skip();
330  }
331 }
MOVE_EXACT_ORIGIN
const wxPoint & GetGridOrigin() const override
Function GetGridOrigin returns the absolute coordinates of the origin of the snap grid...
MOVE_EXACT_ORIGIN & m_origin
wxPoint m_O_Curseur
Relative Screen cursor coordinate (on grid) in user units.
const wxPoint & GetAuxOrigin() const override
Function GetAuxOrigin returns the origin of the axis used for plotting and various exports...
MOVE_EXACT_ANCHOR
bool GetTranslationInIU(wxPoint &val, bool polar)
Get the (Cartesian) translation described by the text entries.
PCB_SCREEN * GetScreen() const override
Function GetScreen returns a pointer to a BASE_SCREEN or one of its derivatives.
MOVE_EXACT_ANCHOR & m_anchor
static MOVE_EXACT_OPTIONS m_options
double DoubleValueFromString(EDA_UNITS_T aUnits, const wxString &aTextValue)
Function DoubleValueFromString converts aTextValue to a double.
Definition: base_units.cpp:302
PCB_BASE_FRAME * m_parent
void DIALOG_MOVE_EXACT::OnOriginChanged ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MOVE_EXACT_BASE.

Definition at line 201 of file dialog_move_exact.cpp.

References m_allowOverride, DIALOG_MOVE_EXACT_BASE::m_anchorChoice, DIALOG_MOVE_EXACT_BASE::m_cbOverride, DIALOG_MOVE_EXACT_BASE::m_originChooser, and RELATIVE_TO_CURRENT_POSITION.

202 {
203  if( m_originChooser->GetSelection() == RELATIVE_TO_CURRENT_POSITION )
204  {
205  //no need to override the achor in this mode since the reference in the current position
206  m_cbOverride->Disable();
207  m_anchorChoice->Disable();
208  }
209  else if( m_allowOverride )
210  {
211  m_cbOverride->Enable();
212 
213  if( m_cbOverride->IsChecked() )
214  m_anchorChoice->Enable();
215  }
216 }
void DIALOG_MOVE_EXACT::OnOverrideChanged ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MOVE_EXACT_BASE.

Definition at line 219 of file dialog_move_exact.cpp.

References DIALOG_MOVE_EXACT_BASE::m_anchorChoice, and DIALOG_MOVE_EXACT_BASE::m_cbOverride.

220 {
221  if( m_cbOverride->IsChecked() )
222  {
223  m_anchorChoice->Enable();
224  }
225  else
226  {
227  m_anchorChoice->Disable();
228  }
229 }
void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 250 of file dialog_shim.cpp.

References DIALOG_SHIM::m_fixupsRun, and recursiveDescent().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

251 {
252  if( !m_fixupsRun )
253  {
254 #if DLGSHIM_SELECT_ALL_IN_TEXT_CONTROLS
255  const bool selectAllInTextCtrls = true;
256 #else
257  const bool selectAllInTextCtrls = false;
258 #endif
259  wxWindow* firstTextCtrl = NULL;
260  wxWindow* windowWithFocus = NULL;
261 
262  recursiveDescent( GetChildren(), selectAllInTextCtrls, firstTextCtrl,
263  windowWithFocus );
264 
265 #if DLGSHIM_USE_SETFOCUS
266  // While it would be nice to honour any focus already set (which was
267  // recorded in windowWithFocus), the reality is that it's currently wrong
268  // far more often than it's right.
269  // So just focus on the first text control if we have one; otherwise the
270  // focus on the dialog itself, which will at least allow esc, return, etc.
271  // to function.
272  if( firstTextCtrl )
273  firstTextCtrl->SetFocus();
274  else
275  SetFocus();
276 #endif
277 
278 #ifdef __WXMAC__
279  fixOSXCancelButtonIssue( this );
280 #endif
281 
282  m_fixupsRun = true;
283  }
284 
285  event.Skip();
286 }
static void recursiveDescent(wxWindowList &children, const bool selectTextInTextCtrls, wxWindow *&firstTextCtrl, wxWindow *&windowWithFocus)
bool m_fixupsRun
Definition: dialog_shim.h:149
void DIALOG_MOVE_EXACT::OnPolarChanged ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_MOVE_EXACT_BASE.

Definition at line 170 of file dialog_move_exact.cpp.

References GetTranslationInIU(), KiROUND(), DIALOG_MOVE_EXACT_BASE::m_polarCoords, DIALOG_MOVE_EXACT_BASE::m_xEntry, DIALOG_MOVE_EXACT_BASE::m_yEntry, PutValueInLocalUnits(), ToPolarDeg(), updateDlgTexts(), wxPoint::x, and wxPoint::y.

171 {
172  bool newPolar = m_polarCoords->IsChecked();
173  updateDlgTexts( newPolar );
174  wxPoint val;
175 
176  // get the value as previously stored
177  GetTranslationInIU( val, !newPolar );
178 
179  if( newPolar )
180  {
181  // convert to polar coordinates
182  double r, q;
183  ToPolarDeg( val.x, val.y, r, q );
184 
185  PutValueInLocalUnits( *m_xEntry, KiROUND( r / 10.0) * 10 );
186  m_yEntry->SetValue( wxString::FromDouble( q ) );
187  }
188  else
189  {
190  // vector is already in Cartesian, so just render out
191  // note - round off the last decimal place (10nm) to prevent
192  // (some) rounding causing errors when round-tripping
193  // you can never eliminate entirely, however
194  PutValueInLocalUnits( *m_xEntry, KiROUND( val.x / 10.0 ) * 10 );
195  PutValueInLocalUnits( *m_yEntry, KiROUND( val.y / 10.0 ) * 10 );
196  }
197  Layout();
198 }
static int KiROUND(double v)
KiROUND rounds a floating point number to an int using "round halfway cases away from zero"...
Definition: common.h:107
void updateDlgTexts(bool aPolar)
bool GetTranslationInIU(wxPoint &val, bool polar)
Get the (Cartesian) translation described by the text entries.
void PutValueInLocalUnits(wxTextCtrl &aTextCtr, int aValue)
Function PutValueInLocalUnits converts aValue from internal units to user units and append the units ...
Definition: base_units.cpp:266
void ToPolarDeg(double x, double y, double &r, double &q)
Convert a given Cartesian point into a polar representation.
void DIALOG_MOVE_EXACT::OnTextFocusLost ( wxFocusEvent &  event)
overrideprivatevirtual

Reset a text field to be 0 if it was exited while blank

Reimplemented from DIALOG_MOVE_EXACT_BASE.

Definition at line 334 of file dialog_move_exact.cpp.

335 {
336  wxTextCtrl* obj = static_cast<wxTextCtrl*>( event.GetEventObject() );
337 
338  if( obj->GetValue().IsEmpty() )
339  obj->SetValue( "0" );
340 
341  event.Skip();
342 }
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 DIALOG_EDIT_COMPONENT_IN_LIBRARY::AddAliasOfPart(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), LIB_VIEW_FRAME::BestZoom(), DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_MODULE_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::BrowseAndSelectDocFile(), DIALOG_EXCHANGE_MODULE::BrowseAndSelectFootprint(), DIALOG_SYMBOL_LIB_TABLE::browseLibrariesHandler(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_MODULE_MODULE_EDITOR::Cfg3DPath(), DIALOG_MODULE_BOARD_EDITOR::Cfg3DPath(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FP_LIB_TABLE::DIALOG_FP_LIB_TABLE(), DIALOG_MODULE_BOARD_EDITOR::DIALOG_MODULE_BOARD_EDITOR(), DIALOG_MODULE_MODULE_EDITOR::DIALOG_MODULE_MODULE_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), LIB_EDIT_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_MODULE_MODULE_EDITOR::Edit3DShapeFileName(), DIALOG_MODULE_BOARD_EDITOR::Edit3DShapeFileName(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), FOOTPRINT_EDIT_FRAME::GetCurrentLib(), SCH_BASE_FRAME::GetLibAlias(), SCH_BASE_FRAME::GetLibPart(), FOOTPRINT_EDIT_FRAME::getLibPath(), LIB_EDIT_FRAME::getLibraryFileName(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DIALOG_BOM::getPluginFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), SCH_EDIT_FRAME::ImportFile(), PCB_EDIT_FRAME::ImportFile(), DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SVG_PRINT::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_MODULE_POSITION::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), SCH_EDIT_FRAME::OnRightClick(), DIALOG_BOM::OnRunPlugin(), DIALOG_NETLIST::OnSaveMessagesToFile(), SCH_EDIT_FRAME::OnSaveProject(), DIALOG_CHOOSE_COMPONENT::OnSchViewPaint(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName(), FOOTPRINT_EDIT_FRAME::OnUpdateSelectCurrentLib(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::PasteListOfItems(), PCB_EDITOR_CONTROL::PlaceModule(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Config(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_VIEW_FRAME::ReCreateHToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), LIB_VIEW_FRAME::RedrawActiveWindow(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDIT_FRAME::RescueLegacyProject(), SCH_EDIT_FRAME::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibrary(), FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), EDA_3D_VIEWER::takeScreenshot(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), CVPCB_MAINFRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_MODULE_BOARD_EDITOR::~DIALOG_MODULE_BOARD_EDITOR(), and DIALOG_MODULE_MODULE_EDITOR::~DIALOG_MODULE_MODULE_EDITOR().

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 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 41 of file kiway_holder.cpp.

References KIWAY_HOLDER::m_kiway, and name.

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

42 {
43 #if defined(DEBUG)
44  // offer a trap point for debugging most any window
45  wxASSERT( aDest );
46  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
47  {
48  int breakhere=1;
49  (void) breakhere;
50  }
51 #endif
52 
53  (void) aDest;
54 
55  m_kiway = aKiway;
56 }
KIWAY * m_kiway
Definition: kiway_player.h:85
const char * name
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 118 of file dialog_shim.cpp.

Referenced by DIALOG_BOM_EDITOR::DIALOG_BOM_EDITOR(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_FP_LIB_TABLE::DIALOG_FP_LIB_TABLE(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), HOTKEYS_EDITOR_DIALOG::HOTKEYS_EDITOR_DIALOG(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), DIALOG_LAYERS_SETUP::OnInitDialog(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

119 {
120  wxSize sz( x, y );
121  SetSize( ConvertDialogToPixels( sz ) );
122 }
bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 146 of file dialog_shim.cpp.

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

Referenced by DisplayHotkeyList(), DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), DIALOG_ANNOTATE::OnApplyClick(), DIALOG_SCH_FIND::OnCancel(), DIALOG_ANNOTATE::OnCancelClick(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), DIALOG_DRC_CONTROL::OnPopupMenu(), DIALOG_EXCHANGE_MODULE::OnQuit(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), and DIALOG_SHIM::ShowQuasiModal().

147 {
148  bool ret;
149  const char* hash_key;
150 
151  if( m_hash_key.size() )
152  {
153  // a special case like EDA_LIST_DIALOG, which has multiple uses.
154  hash_key = m_hash_key.c_str();
155  }
156  else
157  {
158  hash_key = typeid(*this).name();
159  }
160 
161  // Show or hide the window. If hiding, save current position and size.
162  // If showing, use previous position and size.
163  if( show )
164  {
165 #ifndef __WINDOWS__
166  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
167 #endif
168  ret = wxDialog::Show( show );
169 
170  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
171  EDA_RECT r = class_map[ hash_key ];
172 
173  if( r.GetSize().x != 0 && r.GetSize().y != 0 )
174  SetSize( r.GetPosition().x, r.GetPosition().y, r.GetSize().x, r.GetSize().y, 0 );
175  }
176  else
177  {
178  // Save the dialog's position & size before hiding, using classname as key
179  EDA_RECT r( wxDialog::GetPosition(), wxDialog::GetSize() );
180  class_map[ hash_key ] = r;
181 
182  ret = wxDialog::Show( show );
183  }
184 
185  return ret;
186 }
const wxSize GetSize() const
std::string m_hash_key
Definition: dialog_shim.h:151
static RECT_MAP class_map
const wxPoint GetPosition() const
Class EDA_RECT handles the component boundary box.
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 537 of file dialog_shim.cpp.

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

Referenced by SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), LIB_EDIT_FRAME::InstallFieldsEditorDialog(), SCH_EDIT_FRAME::InstallHierarchyFrame(), InvokeDialogCreateBOMEditor(), InvokeDialogEditComponentsLibId(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

538 {
539  // This is an exception safe way to zero a pointer before returning.
540  // Yes, even though DismissModal() clears this first normally, this is
541  // here in case there's an exception before the dialog is dismissed.
542  struct NULLER
543  {
544  void*& m_what;
545  NULLER( void*& aPtr ) : m_what( aPtr ) {}
546  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
547  } clear_this( (void*&) m_qmodal_loop );
548 
549  // release the mouse if it's currently captured as the window having it
550  // will be disabled when this dialog is shown -- but will still keep the
551  // capture making it impossible to do anything in the modal dialog itself
552  wxWindow* win = wxWindow::GetCapture();
553  if( win )
554  win->ReleaseMouse();
555 
556  // Get the optimal parent
557  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
558 
559  // Show the optimal parent
560  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
561 
562  wxASSERT_MSG( !m_qmodal_parent_disabler,
563  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
564 
565  // quasi-modal: disable only my "optimal" parent
567 
568 #ifdef __WXMAC__
569  // Apple in its infinite wisdom will raise a disabled window before even passing
570  // us the event, so we have no way to stop it. Instead, we must set an order on
571  // the windows so that the quasi-modal will be pushed in front of the disabled
572  // window when it is raised.
573  ReparentQuasiModal();
574 #endif
575  Show( true );
576 
577  m_qmodal_showing = true;
578 
579  EVENT_LOOP event_loop;
580 
581  m_qmodal_loop = &event_loop;
582 
583  event_loop.Run();
584 
585  return GetReturnCode();
586 }
bool m_qmodal_showing
Definition: dialog_shim.h:155
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:154
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:156
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:33
#define DBG(x)
Definition: fctsys.h:33
void DIALOG_MOVE_EXACT::ToPolarDeg ( double  x,
double  y,
double &  r,
double &  q 
)
private

Convert a given Cartesian point into a polar representation.

Linear units are not considered, the answer is in the same units as given Angle is returned in degrees

Definition at line 139 of file dialog_move_exact.cpp.

References RAD2DEG().

Referenced by OnPolarChanged().

140 {
141  // convert to polar coordinates
142  r = hypot ( x, y );
143 
144  q = ( r != 0) ? RAD2DEG( atan2( y, x ) ) : 0;
145 }
double RAD2DEG(double rad)
Definition: trigo.h:200
void DIALOG_MOVE_EXACT::updateDlgTexts ( bool  aPolar)
private

Definition at line 232 of file dialog_move_exact.cpp.

References DEGREES, g_UserUnit, GetAbbreviatedUnitsLabel(), DIALOG_MOVE_EXACT_BASE::m_xLabel, DIALOG_MOVE_EXACT_BASE::m_yLabel, and DIALOG_MOVE_EXACT_BASE::m_yUnit.

Referenced by DIALOG_MOVE_EXACT(), and OnPolarChanged().

233 {
234  if( aPolar )
235  {
236  m_xLabel->SetLabelText( _( "Distance:" ) ); // Polar radius
237  m_yLabel->SetLabelText( _( "Angle:" ) ); // Polar theta or angle
238 
239  m_yUnit->SetLabelText( GetAbbreviatedUnitsLabel( DEGREES ) );
240  }
241  else
242  {
243  m_xLabel->SetLabelText( _( "Move vector X:" ) );
244  m_yLabel->SetLabelText( _( "Move vector Y:" ) );
245 
246  m_yUnit->SetLabelText( GetAbbreviatedUnitsLabel( g_UserUnit ) );
247  }
248 }
wxString GetAbbreviatedUnitsLabel(EDA_UNITS_T aUnit)
Definition: base_units.cpp:484
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
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 132 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_LAYERS_SETUP::moveTitles(), and DIALOG_LAYERS_SETUP::OnInitDialog().

133 {
134  wxSize sz( 0, y );
135  return ConvertDialogToPixels( sz ).y;
136 }

Member Data Documentation

wxBoxSizer* DIALOG_MOVE_EXACT_BASE::bAnchorSizer
protectedinherited
wxBoxSizer* DIALOG_MOVE_EXACT_BASE::bMainSizer
protectedinherited
bool& DIALOG_MOVE_EXACT::m_allowOverride
private

Definition at line 71 of file dialog_move_exact.h.

Referenced by DIALOG_MOVE_EXACT(), OnOkClick(), and OnOriginChanged().

MOVE_EXACT_ANCHOR& DIALOG_MOVE_EXACT::m_anchor
private

Definition at line 70 of file dialog_move_exact.h.

Referenced by OnOkClick().

wxChoice* DIALOG_MOVE_EXACT_BASE::m_anchorChoice
protectedinherited
wxCheckBox* DIALOG_MOVE_EXACT_BASE::m_cbOverride
protectedinherited
wxButton* DIALOG_MOVE_EXACT_BASE::m_clearRot
protectedinherited
wxButton* DIALOG_MOVE_EXACT_BASE::m_clearX
protectedinherited
wxButton* DIALOG_MOVE_EXACT_BASE::m_clearY
protectedinherited
bool& DIALOG_MOVE_EXACT::m_editingFootprint
private

Definition at line 72 of file dialog_move_exact.h.

Referenced by DIALOG_MOVE_EXACT().

bool DIALOG_SHIM::m_fixupsRun
protectedinherited

Definition at line 149 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

std::string DIALOG_SHIM::m_hash_key
protectedinherited
DIALOG_MOVE_EXACT::MOVE_EXACT_OPTIONS DIALOG_MOVE_EXACT::m_options
staticprivate

Definition at line 139 of file dialog_move_exact.h.

Referenced by DIALOG_MOVE_EXACT(), and OnOkClick().

MOVE_EXACT_ORIGIN& DIALOG_MOVE_EXACT::m_origin
private

Definition at line 69 of file dialog_move_exact.h.

Referenced by OnOkClick().

wxRadioBox* DIALOG_MOVE_EXACT_BASE::m_originChooser
protectedinherited
PCB_BASE_FRAME* DIALOG_MOVE_EXACT::m_parent
private

Definition at line 66 of file dialog_move_exact.h.

Referenced by OnOkClick().

wxCheckBox* DIALOG_MOVE_EXACT_BASE::m_polarCoords
protectedinherited
EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 154 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
double& DIALOG_MOVE_EXACT::m_rotation
private

Definition at line 68 of file dialog_move_exact.h.

Referenced by OnOkClick().

wxStaticText* DIALOG_MOVE_EXACT_BASE::m_rotLabel
protectedinherited
wxStaticText* DIALOG_MOVE_EXACT_BASE::m_rotUnit
protectedinherited
wxStaticLine* DIALOG_MOVE_EXACT_BASE::m_staticline1
protectedinherited
wxStdDialogButtonSizer* DIALOG_MOVE_EXACT_BASE::m_stdButtons
protectedinherited
wxButton* DIALOG_MOVE_EXACT_BASE::m_stdButtonsCancel
protectedinherited
wxButton* DIALOG_MOVE_EXACT_BASE::m_stdButtonsOK
protectedinherited
wxPoint& DIALOG_MOVE_EXACT::m_translation
private

Definition at line 67 of file dialog_move_exact.h.

Referenced by OnOkClick().

wxStaticText* DIALOG_MOVE_EXACT_BASE::m_xLabel
protectedinherited
wxStaticText* DIALOG_MOVE_EXACT_BASE::m_xUnit
protectedinherited
wxStaticText* DIALOG_MOVE_EXACT_BASE::m_yLabel
protectedinherited
wxStaticText* DIALOG_MOVE_EXACT_BASE::m_yUnit
protectedinherited

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