KiCad PCB EDA Suite
PCB_CALCULATOR_FRAME_BASE Class Referenceabstract

Class PCB_CALCULATOR_FRAME_BASE. More...

#include <pcb_calculator_frame_base.h>

Inheritance diagram for PCB_CALCULATOR_FRAME_BASE:
KIWAY_PLAYER EDA_BASE_FRAME TOOLS_HOLDER KIWAY_HOLDER PCB_CALCULATOR_FRAME

Public Types

enum  UNDO_REDO_LIST { UNDO_LIST, REDO_LIST }
 Specifies whether we are interacting with the undo or redo stacks. More...
 
enum  HOLDER_TYPE { DIALOG, FRAME, PANEL }
 

Public Member Functions

 PCB_CALCULATOR_FRAME_BASE (wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("PCB Calculator"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL, const wxString &name=wxT("pcb_calculator"))
 
 ~PCB_CALCULATOR_FRAME_BASE ()
 
virtual bool OpenProjectFiles (const std::vector< wxString > &aFileList, int aCtl=0)
 Open a project or set of files given by aFileList. More...
 
virtual void ParseArgs (wxCmdLineParser &aParser)
 Handle command-line arguments in a frame-specific way. More...
 
virtual bool ShowModal (wxString *aResult=nullptr, wxWindow *aResultantFocusWindow=nullptr)
 Show this wxFrame as if it were a modal dialog, with all other instantiated wxFrames disabled until this KIWAY_PLAYER derivative calls DismissModal(). More...
 
virtual void KiwayMailIn (KIWAY_EXPRESS &aEvent)
 Receive KIWAY_EXPRESS messages from other players. More...
 
bool Destroy () override
 Our version of Destroy() which is virtual from wxWidgets. More...
 
bool IsModal () const override
 Return true if the frame is shown in our modal mode and false if the frame is shown as an usual frame. More...
 
void SetModal (bool aIsModal)
 
bool IsDismissed ()
 
void DismissModal (bool aRetVal, const wxString &aResult=wxEmptyString)
 
void CreateServer (int service, bool local=true)
 
void OnSockRequest (wxSocketEvent &evt)
 
void OnSockRequestServer (wxSocketEvent &evt)
 
virtual void ExecuteRemoteCommand (const char *cmdline)
 Execute a remote command sent via socket (to port KICAD_PCB_PORT_SERVICE_NUMBER, currently 4242). More...
 
EDA_UNITS GetUserUnits () const
 Return the user units currently in use. More...
 
void SetUserUnits (EDA_UNITS aUnits)
 
void ChangeUserUnits (EDA_UNITS aUnits)
 
virtual void ToggleUserUnits ()
 
SETTINGS_MANAGERGetSettingsManager () const
 
virtual SEVERITY GetSeverity (int aErrorCode) const
 
bool ProcessEvent (wxEvent &aEvent) override
 Override the default process event handler to implement the auto save feature. More...
 
virtual void OnCharHook (wxKeyEvent &aKeyEvent)
 Capture the key event before it is sent to the GUI. More...
 
void OnMenuEvent (wxMenuEvent &event)
 The TOOL_DISPATCHER needs these to work around some issues in wxWidgets where the menu events aren't captured by the menus themselves. More...
 
virtual void RegisterUIUpdateHandler (int aID, const ACTION_CONDITIONS &aConditions) override
 Register a UI update handler for the control with ID aID. More...
 
virtual void RegisterUIUpdateHandler (const TOOL_ACTION &aAction, const ACTION_CONDITIONS &aConditions)
 Register an action's update conditions with the UI layer to allow the UI to appropriately display the state of its controls. More...
 
virtual void UnregisterUIUpdateHandler (int aID) override
 Unregister a UI handler for a given ID that was registered using RegisterUIUpdateHandler. More...
 
virtual void UnregisterUIUpdateHandler (const TOOL_ACTION &aAction)
 Unregister a UI handler for an action that was registered using RegisterUIUpdateHandler. More...
 
virtual void OnMove (wxMoveEvent &aEvent)
 
virtual void OnSize (wxSizeEvent &aEvent)
 
void OnMaximize (wxMaximizeEvent &aEvent)
 
void SetAutoSaveInterval (int aInterval)
 
int GetAutoSaveInterval () const
 
bool IsType (FRAME_T aType) const
 
FRAME_T GetFrameType () const
 
virtual const SEARCH_STACKsys_search ()
 Return a SEARCH_STACK pertaining to entire program. More...
 
virtual wxString help_name ()
 
void OnKicadAbout (wxCommandEvent &event)
 
void OnPreferences (wxCommandEvent &event)
 Displays the preferences and settings of all opened editors paged dialog. More...
 
void PrintMsg (const wxString &text)
 
void CreateInfoBar ()
 
void FinishAUIInitialization ()
 
WX_INFOBARGetInfoBar ()
 
void ShowInfoBarError (const wxString &aErrorMsg, bool aShowCloseButton=false, WX_INFOBAR::MESSAGE_TYPE aType=WX_INFOBAR::MESSAGE_TYPE::GENERIC)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left of the infobar, and an optional closebox to the right. More...
 
void ShowInfoBarError (const wxString &aErrorMsg, bool aShowCloseButton, std::function< void(void)> aCallback)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left of the infobar, and an optional closebox to the right. More...
 
void ShowInfoBarWarning (const wxString &aWarningMsg, bool aShowCloseButton=false)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and a warning icon on the left of the infobar. More...
 
void ShowInfoBarMsg (const wxString &aMsg, bool aShowCloseButton=false)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and an info icon on the left of the infobar. More...
 
virtual APP_SETTINGS_BASEconfig () const
 Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME. More...
 
virtual void InstallPreferences (PAGED_DIALOG *, PANEL_HOTKEYS_EDITOR *)
 Allow a frame to load its preference panels (if any) into the preferences dialog. More...
 
void LoadWindowState (const wxString &aFileName)
 
virtual void LoadWindowState (const WINDOW_STATE &aState)
 Load frame state info from a configuration file. More...
 
void LoadWindowSettings (const WINDOW_SETTINGS *aCfg)
 Load window settings from the given settings object. More...
 
void SaveWindowSettings (WINDOW_SETTINGS *aCfg)
 Save window settings to the given settings object. More...
 
virtual void LoadSettings (APP_SETTINGS_BASE *aCfg)
 Load common frame parameters from a configuration file. More...
 
virtual void SaveSettings (APP_SETTINGS_BASE *aCfg)
 Save common frame parameters to a configuration data file. More...
 
virtual WINDOW_SETTINGSGetWindowSettings (APP_SETTINGS_BASE *aCfg)
 Return a pointer to the window settings for this frame. More...
 
wxString ConfigBaseName () override
 Get the configuration base name. More...
 
virtual void SaveProjectSettings ()
 Save changes to the project settings to the project (.pro) file. More...
 
void ImportHotkeyConfigFromFile (std::map< std::string, TOOL_ACTION * > aActionMap, const wxString &aDefaultShortname)
 Prompt the user for a hotkey file to read, and read it. More...
 
wxString GetFileFromHistory (int cmdId, const wxString &type, FILE_HISTORY *aFileHistory=nullptr)
 Fetches the file name from the file history list. More...
 
void ClearFileHistory (FILE_HISTORY *aFileHistory=nullptr)
 Removes all files from the file history. More...
 
void UpdateFileHistory (const wxString &FullFileName, FILE_HISTORY *aFileHistory=nullptr)
 Update the list of recently opened files. More...
 
FILE_HISTORYGetFileHistory ()
 Get the frame's main file history. More...
 
void SetMruPath (const wxString &aPath)
 
wxString GetMruPath () const
 
virtual wxString GetCurrentFileName () const
 Get the full filename + path of the currently opened file in the frame. More...
 
virtual void ReCreateMenuBar ()
 Recreates the menu bar. More...
 
void AddStandardHelpMenu (wxMenuBar *aMenuBar)
 Adds the standard KiCad help menu to the menubar. More...
 
bool IsWritable (const wxFileName &aFileName)
 Checks if aFileName can be written. More...
 
void CheckForAutoSaveFile (const wxFileName &aFileName)
 Check if an auto save file exists for aFileName and takes the appropriate action depending on the user input. More...
 
virtual void UpdateStatusBar ()
 Update the status bar information. More...
 
void ShowChangedLanguage () override
 Redraw the menus and what not in current language. More...
 
void CommonSettingsChanged (bool aEnvVarsChanged, bool aTextVarsChanged) override
 Notification event that some of the common (suite-wide) settings have changed. More...
 
virtual void ThemeChanged ()
 Process light/dark theme change. More...
 
virtual void ProjectChanged ()
 Notification event that the project has changed. More...
 
const wxString & GetAboutTitle () const
 
virtual bool IsContentModified () const
 Get if the contents of the frame have been modified since the last save. More...
 
wxSize GetWindowSize ()
 Get the undecorated window size that can be used for restoring the window size. More...
 
virtual void ClearUndoORRedoList (UNDO_REDO_LIST aList, int aItemCount=-1)
 Remove the aItemCount of old commands from aList and delete commands, pickers and picked items if needed. More...
 
virtual void ClearUndoRedoList ()
 Clear the undo and redo list using ClearUndoORRedoList() More...
 
virtual void PushCommandToUndoList (PICKED_ITEMS_LIST *aItem)
 Add a command to undo in the undo list. More...
 
virtual void PushCommandToRedoList (PICKED_ITEMS_LIST *aItem)
 Add a command to redo in the redo list. More...
 
virtual PICKED_ITEMS_LISTPopCommandFromUndoList ()
 Return the last command to undo and remove it from list, nothing is deleted. More...
 
virtual PICKED_ITEMS_LISTPopCommandFromRedoList ()
 Return the last command to undo and remove it from list, nothing is deleted. More...
 
virtual int GetUndoCommandCount () const
 
virtual int GetRedoCommandCount () const
 
int GetMaxUndoItems () const
 
bool NonUserClose (bool aForce)
 
virtual void HandleSystemColorChange ()
 Update the UI in response to a change in the system colors. More...
 
TOOL_MANAGERGetToolManager () const
 Return the MVC controller. More...
 
virtual SELECTIONGetCurrentSelection ()
 Get the current selection from the canvas area. More...
 
virtual void PushTool (const std::string &actionName)
 NB: the definition of "tool" is different at the user level. More...
 
virtual void PopTool (const std::string &actionName)
 
bool ToolStackIsEmpty ()
 
std::string CurrentToolName () const
 
bool IsCurrentTool (const TOOL_ACTION &aAction) const
 
virtual void DisplayToolMsg (const wxString &msg)
 
bool GetDoImmediateActions () const
 Indicate that hotkeys should perform an immediate action even if another tool is currently active. More...
 
MOUSE_DRAG_ACTION GetDragAction () const
 Indicates whether a drag should draw a selection rectangle or drag selected (or unselected) objects. More...
 
bool GetMoveWarpsCursor () const
 Indicate that a move operation should warp the mouse pointer to the origin of the move object. More...
 
virtual wxWindow * GetToolCanvas () const =0
 Canvas access. More...
 
virtual void RefreshCanvas ()
 
HOLDER_TYPE GetType () const
 
KIWAYKiway () const
 Return a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Return a reference to the PROJECT associated with this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 It is only used for debugging, since "this" is not a wxWindow*. More...
 

Static Public Member Functions

static void HandleUpdateUIEvent (wxUpdateUIEvent &aEvent, EDA_BASE_FRAME *aFrame, ACTION_CONDITIONS aCond)
 Handle events generated when the UI is trying to figure out the current state of the UI controls related to TOOL_ACTIONS (e.g. More...
 

Protected Member Functions

virtual void OnClosePcbCalc (wxCloseEvent &event)
 
virtual void OnUpdateUI (wxUpdateUIEvent &event)
 
virtual void OnRegulTypeSelection (wxCommandEvent &event)
 
virtual void OnRegulatorCalcButtonClick (wxCommandEvent &event)
 
virtual void OnRegulatorResetButtonClick (wxCommandEvent &event)
 
virtual void OnRegulatorSelection (wxCommandEvent &event)
 
virtual void OnDataFileSelection (wxCommandEvent &event)
 
virtual void OnEditRegulator (wxCommandEvent &event)
 
virtual void OnAddRegulator (wxCommandEvent &event)
 
virtual void OnRemoveRegulator (wxCommandEvent &event)
 
virtual void OnAttenuatorSelection (wxCommandEvent &event)
 
virtual void OnCalculateAttenuator (wxCommandEvent &event)
 
virtual void OnESeriesSelection (wxCommandEvent &event)
 
virtual void OnCalculateESeries (wxCommandEvent &event)
 
virtual void OnToleranceSelection (wxCommandEvent &event)
 
virtual void OnTranslineSelection (wxCommandEvent &event)
 
virtual void OnTranslineEpsilonR_Button (wxCommandEvent &event)
 
virtual void OnTranslineTanD_Button (wxCommandEvent &event)
 
virtual void OnTranslineRho_Button (wxCommandEvent &event)
 
virtual void OnTranslineAnalyse (wxCommandEvent &event)
 
virtual void OnTranslineSynthetize (wxCommandEvent &event)
 
virtual void OnTransLineResetButtonClick (wxCommandEvent &event)
 
virtual void OnViaCalculate (wxCommandEvent &event)
 
virtual void OnViaRho_Button (wxCommandEvent &event)
 
virtual void OnViaEpsilonR_Button (wxCommandEvent &event)
 
virtual void onUpdateViaCalcErrorText (wxUpdateUIEvent &event)
 
virtual void OnViaResetButtonClick (wxCommandEvent &event)
 
virtual void OnTWCalculateFromCurrent (wxCommandEvent &event)
 
virtual void OnTWParametersChanged (wxCommandEvent &event)
 
virtual void OnTWCalculateFromExtWidth (wxCommandEvent &event)
 
virtual void OnTWCalculateFromIntWidth (wxCommandEvent &event)
 
virtual void OnTWResetButtonClick (wxCommandEvent &event)
 
virtual void OnElectricalSpacingUnitsSelection (wxCommandEvent &event)
 
virtual void OnElectricalSpacingRefresh (wxCommandEvent &event)
 
virtual void OnBoardClassesUnitsSelection (wxCommandEvent &event)
 
void kiway_express (KIWAY_EXPRESS &aEvent)
 event handler, routes to derivative specific virtual KiwayMailIn() More...
 
void language_change (wxCommandEvent &event)
 An event handler called on a language menu selection. More...
 
void onAutoSaveTimer (wxTimerEvent &aEvent)
 Handle the auto save timer event. More...
 
virtual bool isAutoSaveRequired () const
 Return the auto save status of the application. More...
 
virtual bool doAutoSave ()
 This should be overridden by the derived class to handle the auto save feature. More...
 
virtual bool canCloseWindow (wxCloseEvent &aCloseEvent)
 
virtual void doCloseWindow ()
 
void onSystemColorChange (wxSysColourChangedEvent &aEvent)
 
virtual void unitsChangeRefresh ()
 Called when when the units setting has changed to allow for any derived classes to handle refreshing and controls that have units based measurements in them. More...
 
virtual void setupUIConditions ()
 Setup the UI conditions for the various actions and their controls in this frame. More...
 
void initExitKey ()
 Sets the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id. More...
 
void ensureWindowIsOnScreen ()
 

Static Protected Member Functions

static wxString GetAutoSaveFilePrefix ()
 

Protected Attributes

wxMenuBar * m_menubar
 
wxNotebook * m_Notebook
 
wxPanel * m_panelRegulators
 
wxStaticText * m_staticTextRegType
 
wxChoice * m_choiceRegType
 
wxStaticBitmap * m_bitmapRegul4pins
 
wxStaticBitmap * m_bitmapRegul3pins
 
wxStaticText * m_RegulFormula
 
wxRadioButton * m_rbRegulR1
 
wxStaticText * m_labelRegultR1
 
wxTextCtrl * m_RegulR1Value
 
wxStaticText * m_r1Units
 
wxRadioButton * m_rbRegulR2
 
wxStaticText * m_labelRegultR2
 
wxTextCtrl * m_RegulR2Value
 
wxStaticText * m_r2Units
 
wxRadioButton * m_rbRegulVout
 
wxStaticText * m_labelVout
 
wxTextCtrl * m_RegulVoutValue
 
wxStaticText * m_unitsVout
 
wxStaticText * m_labelVRef
 
wxTextCtrl * m_RegulVrefValue
 
wxStaticText * m_unitsVref
 
wxStaticText * m_RegulIadjTitle
 
wxTextCtrl * m_RegulIadjValue
 
wxStaticText * m_IadjUnitLabel
 
wxButton * m_buttonCalculate
 
wxButton * m_buttonRegulReset
 
wxStaticText * m_RegulMessage
 
wxChoice * m_choiceRegulatorSelector
 
wxStaticText * m_staticTextRegFile
 
wxTextCtrl * m_regulators_fileNameCtrl
 
wxButton * m_buttonDataFile
 
wxButton * m_buttonEditItem
 
wxButton * m_buttonAddItem
 
wxButton * m_buttonRemoveItem
 
wxPanel * m_panelAttenuators
 
wxRadioBox * m_AttenuatorsSelection
 
wxStaticBitmap * m_attenuatorBitmap
 
wxStaticText * m_attenuationLabel
 
wxTextCtrl * m_AttValueCtrl
 
wxStaticText * m_attUnit
 
wxStaticText * m_attenuationZinLabel
 
wxTextCtrl * m_ZinValueCtrl
 
wxStaticText * m_attZinUnit
 
wxStaticText * m_ZoutLabel
 
wxTextCtrl * m_ZoutValueCtrl
 
wxStaticText * m_attZoutUnit
 
wxButton * m_buttonAlcAtt
 
wxBitmapButton * m_bpButtonCalcAtt
 
wxStaticText * m_attenuatorR1Label
 
wxTextCtrl * m_Att_R1_Value
 
wxStaticText * m_attR1Unit
 
wxStaticText * m_attenuatorR2Label
 
wxTextCtrl * m_Att_R2_Value
 
wxStaticText * m_attR2Unit
 
wxStaticText * m_attenuatorR3Label
 
wxTextCtrl * m_Att_R3_Value
 
wxStaticText * m_attR3Unit
 
wxStaticText * m_staticTextAttMsg
 
wxHtmlWindow * m_Attenuator_Messages
 
wxHtmlWindow * m_panelAttFormula
 
wxPanel * m_panelESeries
 
wxStaticText * m_ESrequired
 
wxTextCtrl * m_ResRequired
 
wxStaticText * m_reqResUnits
 
wxStaticText * m_ESrequired1
 
wxTextCtrl * m_ResExclude1
 
wxStaticText * m_exclude1Units
 
wxStaticText * m_ESrequired11
 
wxTextCtrl * m_ResExclude2
 
wxStaticText * m_exclude2Units
 
wxStaticLine * m_staticline6
 
wxRadioButton * m_e1
 
wxRadioButton * m_e3
 
wxRadioButton * m_e6
 
wxRadioButton * m_e12
 
wxStaticText * m_ESerieSimpleSolution
 
wxTextCtrl * m_ESeries_Sol2R
 
wxStaticText * m_ESeriesSimpleErr
 
wxTextCtrl * m_ESeriesError2R
 
wxStaticText * m_ESeriesSimplePercent
 
wxStaticText * m_ESerie3RSolution1
 
wxTextCtrl * m_ESeries_Sol3R
 
wxStaticText * m_ESeriesAltErr
 
wxTextCtrl * m_ESeriesError3R
 
wxStaticText * m_ESeriesAltPercent
 
wxStaticText * m_ESeries4RSolution
 
wxTextCtrl * m_ESeries_Sol4R
 
wxStaticText * m_ESeriesAltErr1
 
wxTextCtrl * m_ESeriesError4R
 
wxStaticText * m_ESeriesAltPercent1
 
wxStaticLine * m_staticline7
 
wxButton * m_buttonEScalculate
 
wxHtmlWindow * m_panelESeriesHelp
 
wxPanel * m_panelColorCode
 
wxRadioBox * m_rbToleranceSelection
 
wxStaticText * m_staticText31
 
wxStaticText * m_staticText34
 
wxStaticText * m_staticText35
 
wxStaticText * m_Band4Label
 
wxStaticText * m_staticText37
 
wxStaticText * m_staticText38
 
wxStaticBitmap * m_Band1bitmap
 
wxStaticBitmap * m_Band2bitmap
 
wxStaticBitmap * m_Band3bitmap
 
wxStaticBitmap * m_Band4bitmap
 
wxStaticBitmap * m_Band_mult_bitmap
 
wxStaticBitmap * m_Band_tol_bitmap
 
wxPanel * m_panelTransline
 
wxRadioBox * m_TranslineSelection
 
wxStaticBitmap * m_translineBitmap
 
wxStaticText * m_EpsilonR_label
 
wxTextCtrl * m_Value_EpsilonR
 
wxButton * m_button_EpsilonR
 
wxStaticText * m_TanD_label
 
wxTextCtrl * m_Value_TanD
 
wxButton * m_button_TanD
 
wxStaticText * m_Rho_label
 
wxTextCtrl * m_Value_Rho
 
wxButton * m_button_Rho
 
wxStaticText * m_substrate_prm4_label
 
wxTextCtrl * m_Substrate_prm4_Value
 
UNIT_SELECTOR_LENm_SubsPrm4_choiceUnit
 
wxStaticText * m_substrate_prm5_label
 
wxTextCtrl * m_Substrate_prm5_Value
 
UNIT_SELECTOR_LENm_SubsPrm5_choiceUnit
 
wxStaticText * m_substrate_prm6_label
 
wxTextCtrl * m_Substrate_prm6_Value
 
UNIT_SELECTOR_LENm_SubsPrm6_choiceUnit
 
wxStaticText * m_substrate_prm7_label
 
wxTextCtrl * m_Substrate_prm7_Value
 
UNIT_SELECTOR_LENm_SubsPrm7_choiceUnit
 
wxStaticText * m_substrate_prm8_label
 
wxTextCtrl * m_Substrate_prm8_Value
 
UNIT_SELECTOR_LENm_SubsPrm8_choiceUnit
 
wxStaticText * m_substrate_prm9_label
 
wxTextCtrl * m_Substrate_prm9_Value
 
UNIT_SELECTOR_LENm_SubsPrm9_choiceUnit
 
wxStaticText * m_Frequency_label
 
wxTextCtrl * m_Value_Frequency_Ctrl
 
UNIT_SELECTOR_FREQUENCYm_choiceUnit_Frequency
 
wxStaticBitmap * m_bmCMicrostripZoddZeven
 
wxFlexGridSizer * m_fgSizerZcomment
 
wxStaticText * m_staticTextZdiff
 
wxStaticText * m_staticTextZcommon
 
wxStaticText * m_phys_prm1_label
 
wxTextCtrl * m_Phys_prm1_Value
 
UNIT_SELECTOR_LENm_choiceUnit_Param1
 
wxRadioButton * m_radioBtnPrm1
 
wxStaticText * m_phys_prm2_label
 
wxTextCtrl * m_Phys_prm2_Value
 
UNIT_SELECTOR_LENm_choiceUnit_Param2
 
wxRadioButton * m_radioBtnPrm2
 
wxStaticText * m_phys_prm3_label
 
wxTextCtrl * m_Phys_prm3_Value
 
UNIT_SELECTOR_LENm_choiceUnit_Param3
 
wxBitmapButton * m_bpButtonAnalyze
 
wxButton * m_AnalyseButton
 
wxButton * m_SynthetizeButton
 
wxBitmapButton * m_bpButtonSynthetize
 
wxStaticText * m_elec_prm1_label
 
wxTextCtrl * m_Elec_prm1_Value
 
UNIT_SELECTOR_RESISTORm_choiceUnit_ElecPrm1
 
wxStaticText * m_elec_prm2_label
 
wxTextCtrl * m_Elec_prm2_Value
 
UNIT_SELECTOR_RESISTORm_choiceUnit_ElecPrm2
 
wxStaticText * m_elec_prm3_label
 
wxTextCtrl * m_Elec_prm3_Value
 
UNIT_SELECTOR_ANGLEm_choiceUnit_ElecPrm3
 
wxStaticText * m_left_message1
 
wxStaticText * m_Message1
 
wxStaticText * m_left_message2
 
wxStaticText * m_Message2
 
wxStaticText * m_left_message3
 
wxStaticText * m_Message3
 
wxStaticText * m_left_message4
 
wxStaticText * m_Message4
 
wxStaticText * m_left_message5
 
wxStaticText * m_Message5
 
wxStaticText * m_left_message6
 
wxStaticText * m_Message6
 
wxStaticText * m_left_message7
 
wxStaticText * m_Message7
 
wxStaticText * m_left_message8
 
wxStaticText * m_Message8
 
wxButton * m_buttonTransLineReset
 
wxPanel * m_panelViaSize
 
wxStaticText * m_staticTextHoleDia
 
wxTextCtrl * m_textCtrlHoleDia
 
UNIT_SELECTOR_LENm_choiceHoleDia
 
wxStaticText * m_staticTextPlatingThickness
 
wxTextCtrl * m_textCtrlPlatingThickness
 
UNIT_SELECTOR_LENm_choicePlatingThickness
 
wxStaticText * m_staticTextViaLength
 
wxTextCtrl * m_textCtrlViaLength
 
UNIT_SELECTOR_LENm_choiceViaLength
 
wxStaticText * m_staticTextViaPadDia
 
wxTextCtrl * m_textCtrlViaPadDia
 
UNIT_SELECTOR_LENm_choiceViaPadDia
 
wxStaticText * m_staticTextClearanceDia
 
wxTextCtrl * m_textCtrlClearanceDia
 
UNIT_SELECTOR_LENm_choiceClearanceDia
 
wxStaticText * m_staticTextImpedance
 
wxTextCtrl * m_textCtrlImpedance
 
UNIT_SELECTOR_RESISTORm_choiceImpedance
 
wxStaticText * m_staticAppliedCurrent
 
wxTextCtrl * m_textCtrlAppliedCurrent
 
wxStaticText * m_staticTextAppliedCurrentUnits
 
wxStaticText * m_staticTextResistivity
 
wxTextCtrl * m_textCtrlPlatingResistivity
 
wxButton * m_button_ResistivityVia
 
wxStaticText * m_viaResistivityUnits
 
wxStaticText * m_staticTextPermittivity
 
wxTextCtrl * m_textCtrlPlatingPermittivity
 
wxButton * m_button_Permittivity
 
wxStaticText * m_staticTextTemperatureDiff
 
wxTextCtrl * m_textCtrlTemperatureDiff
 
wxStaticText * m_viaTempUnits
 
wxStaticText * m_staticTextRiseTime
 
wxTextCtrl * m_textCtrlRiseTime
 
wxStaticText * m_staticTextRiseTimeUnits
 
wxStaticText * m_staticTextWarning
 
wxStaticText * m_staticTextArea11
 
wxStaticText * m_ViaResistance
 
wxStaticText * m_viaResUnits
 
wxStaticText * m_staticText65111
 
wxStaticText * m_ViaVoltageDrop
 
wxStaticText * m_staticText8411
 
wxStaticText * m_staticText66111
 
wxStaticText * m_ViaPowerLoss
 
wxStaticText * m_staticText8311
 
wxStaticText * m_staticText79211
 
wxStaticText * m_ViaThermalResistance
 
wxStaticText * m_viaThermalResUnits
 
wxStaticText * m_staticTextAmpacity
 
wxStaticText * m_ViaAmpacity
 
wxStaticText * m_staticTextAmpacityUnits
 
wxStaticText * m_staticTextCapacitance
 
wxStaticText * m_ViaCapacitance
 
wxStaticText * m_staticTextCapacitanceUnits
 
wxStaticText * m_staticTextRiseTimeOutput
 
wxStaticText * m_RiseTimeOutput
 
wxStaticText * m_staticTextRiseTimeOutputUnits
 
wxStaticText * m_staticTextInductance
 
wxStaticText * m_Inductance
 
wxStaticText * m_staticTextInductanceUnits
 
wxStaticText * m_staticTextReactance
 
wxStaticText * m_Reactance
 
wxStaticText * m_viaReactanceUnits
 
wxStaticBitmap * m_viaBitmap
 
wxButton * m_buttonViaReset
 
wxPanel * m_panelTrackWidth
 
wxStaticText * m_staticTextCurrent
 
wxTextCtrl * m_TrackCurrentValue
 
wxStaticText * m_staticText62
 
wxStaticText * m_staticText63
 
wxTextCtrl * m_TrackDeltaTValue
 
wxStaticText * m_trackTempUnits
 
wxStaticText * m_staticText66
 
wxTextCtrl * m_TrackLengthValue
 
UNIT_SELECTOR_LENm_TW_CuLength_choiceUnit
 
wxStaticText * m_staticText103
 
wxTextCtrl * m_TWResistivity
 
wxStaticText * m_resistivityUnits
 
wxHtmlWindow * m_htmlWinFormulas
 
wxStaticText * m_staticTextExtWidth
 
wxTextCtrl * m_ExtTrackWidthValue
 
UNIT_SELECTOR_LENm_TW_ExtTrackWidth_choiceUnit
 
wxStaticText * m_staticText65
 
wxTextCtrl * m_ExtTrackThicknessValue
 
UNIT_SELECTOR_THICKNESSm_ExtTrackThicknessUnit
 
wxStaticLine * m_staticline3
 
wxStaticLine * m_staticline4
 
wxStaticLine * m_staticline5
 
wxStaticText * m_staticTextArea
 
wxStaticText * m_ExtTrackAreaValue
 
wxStaticText * m_extTrackAreaUnitLabel
 
wxStaticText * m_staticText651
 
wxStaticText * m_ExtTrackResistValue
 
wxStaticText * m_extTrackResUnits
 
wxStaticText * m_staticText661
 
wxStaticText * m_ExtTrackVDropValue
 
wxStaticText * m_staticText83
 
wxStaticText * m_staticText79
 
wxStaticText * m_ExtTrackLossValue
 
wxStaticText * m_staticText791
 
wxStaticText * m_staticTextIntWidth
 
wxTextCtrl * m_IntTrackWidthValue
 
UNIT_SELECTOR_LENm_TW_IntTrackWidth_choiceUnit
 
wxStaticText * m_staticText652
 
wxTextCtrl * m_IntTrackThicknessValue
 
UNIT_SELECTOR_THICKNESSm_IntTrackThicknessUnit
 
wxStaticLine * m_staticline8
 
wxStaticLine * m_staticline9
 
wxStaticLine * m_staticline10
 
wxStaticText * m_staticTextArea1
 
wxStaticText * m_IntTrackAreaValue
 
wxStaticText * m_intTrackAreaUnitLabel
 
wxStaticText * m_staticText6511
 
wxStaticText * m_IntTrackResistValue
 
wxStaticText * m_intTrackResUnits
 
wxStaticText * m_staticText6611
 
wxStaticText * m_IntTrackVDropValue
 
wxStaticText * m_staticText831
 
wxStaticText * m_staticText792
 
wxStaticText * m_IntTrackLossValue
 
wxStaticText * m_staticText7911
 
wxButton * m_buttonTrackWidthReset
 
wxPanel * m_panelElectricalSpacing
 
UNIT_SELECTOR_LENm_ElectricalSpacingUnitsSelector
 
wxStaticLine * m_staticline2
 
wxStaticText * m_staticText891
 
wxTextCtrl * m_ElectricalSpacingVoltage
 
wxButton * m_buttonElectSpacingRefresh
 
wxBoxSizer * m_electricalSpacingSizer
 
wxStaticText * m_staticTextElectricalSpacing
 
wxGrid * m_gridElectricalSpacingValues
 
wxStaticText * m_staticText88
 
wxPanel * m_panelBoardClass
 
UNIT_SELECTOR_LENm_BoardClassesUnitsSelector
 
wxStaticText * m_staticTextBrdClass
 
wxGrid * m_gridClassesValuesDisplay
 
wxPanel * m_panelShowClassPrms
 
bool m_modal
 
WX_EVENT_LOOPm_modal_loop
 < Points to nested event_loop. NULL means not modal and dismissed. More...
 
wxWindow * m_modal_resultant_parent
 
wxString m_modal_string
 
bool m_modal_ret_val
 
wxSocketServer * m_socketServer
 
std::vector< wxSocketBase * > m_sockets
 interprocess communication More...
 
FRAME_T m_ident
 
wxPoint m_framePos
 
wxSize m_frameSize
 
bool m_maximizeByDefault
 
int m_displayIndex
 
wxPoint m_normalFramePos
 
wxSize m_normalFrameSize
 
wxString m_aboutTitle
 
wxAuiManager m_auimgr
 
wxString m_perspective
 
WX_INFOBARm_infoBar
 
wxString m_configName
 
SETTINGS_MANAGERm_settingsManager
 
FILE_HISTORYm_fileHistory
 
bool m_hasAutoSave
 
bool m_autoSaveState
 
int m_autoSaveInterval
 
wxTimer * m_autoSaveTimer
 
int m_undoRedoCountMax
 
UNDO_REDO_CONTAINER m_undoList
 
UNDO_REDO_CONTAINER m_redoList
 
wxString m_mruPath
 
EDA_UNITS m_userUnits
 Map containing the UI update handlers registered with wx for each action. More...
 
std::map< int, UIUpdateHandlerm_uiUpdateMap
 Set by the close window event handler after frames are asked if they can close. More...
 
bool m_isClosing
 Set by NonUserClose() to indicate that the user did not request the current close. More...
 
bool m_isNonUserClose
 
TOOL_MANAGERm_toolManager
 
ACTIONSm_actions
 
TOOL_DISPATCHERm_toolDispatcher
 
SELECTION m_dummySelection
 
std::vector< std::string > m_toolStack
 
bool m_immediateActions
 
MOUSE_DRAG_ACTION m_dragAction
 
bool m_moveWarpsCursor
 

Static Protected Attributes

static constexpr int KICAD_AUI_TB_STYLE = wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_PLAIN_BACKGROUND
 < Default style flags used for wxAUI toolbars. More...
 

Detailed Description

Class PCB_CALCULATOR_FRAME_BASE.

Definition at line 53 of file pcb_calculator_frame_base.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 39 of file kiway_holder.h.

◆ UNDO_REDO_LIST

Specifies whether we are interacting with the undo or redo stacks.

Enumerator
UNDO_LIST 
REDO_LIST 

Definition at line 109 of file eda_base_frame.h.

Constructor & Destructor Documentation

◆ PCB_CALCULATOR_FRAME_BASE()

PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE ( wxWindow *  parent,
wxWindowID  id = wxID_ANY,
const wxString &  title = _("PCB Calculator"),
const wxPoint &  pos = wxDefaultPosition,
const wxSize &  size = wxSize( -1,-1 ),
long  style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL,
const wxString &  name = wxT("pcb_calculator") 
)

Definition at line 14 of file pcb_calculator_frame_base.cpp.

14  : KIWAY_PLAYER( parent, id, title, pos, size, style, name )
15 {
16  this->SetSizeHints( wxDefaultSize, wxDefaultSize );
17 
18  m_menubar = new wxMenuBar( 0 );
19  this->SetMenuBar( m_menubar );
20 
21  wxBoxSizer* bmainFrameSizer;
22  bmainFrameSizer = new wxBoxSizer( wxVERTICAL );
23 
24  m_Notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
25  m_panelRegulators = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
26  wxBoxSizer* bSizerMainReg;
27  bSizerMainReg = new wxBoxSizer( wxVERTICAL );
28 
29  wxBoxSizer* bSizerColBalancer;
30  bSizerColBalancer = new wxBoxSizer( wxHORIZONTAL );
31 
32  wxBoxSizer* bSizeLeftpReg;
33  bSizeLeftpReg = new wxBoxSizer( wxVERTICAL );
34 
35  bSizeLeftpReg->SetMinSize( wxSize( 400,-1 ) );
36  wxBoxSizer* bSizerType;
37  bSizerType = new wxBoxSizer( wxHORIZONTAL );
38 
39  m_staticTextRegType = new wxStaticText( m_panelRegulators, wxID_ANY, _("Type:"), wxDefaultPosition, wxDefaultSize, 0 );
40  m_staticTextRegType->Wrap( -1 );
41  m_staticTextRegType->SetToolTip( _("Type of the regulator.\nThere are 2 types:\n- regulators which have a dedicated sense pin for the voltage regulation.\n- 3 terminal pins.") );
42 
43  bSizerType->Add( m_staticTextRegType, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
44 
45  wxString m_choiceRegTypeChoices[] = { _("Standard Type"), _("3 Terminal Type") };
46  int m_choiceRegTypeNChoices = sizeof( m_choiceRegTypeChoices ) / sizeof( wxString );
47  m_choiceRegType = new wxChoice( m_panelRegulators, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegTypeNChoices, m_choiceRegTypeChoices, 0 );
48  m_choiceRegType->SetSelection( 0 );
49  bSizerType->Add( m_choiceRegType, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
50 
51 
52  bSizeLeftpReg->Add( bSizerType, 0, wxEXPAND|wxALL, 5 );
53 
54 
55  bSizeLeftpReg->Add( 0, 10, 0, wxEXPAND, 5 );
56 
57  m_bitmapRegul4pins = new wxStaticBitmap( m_panelRegulators, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
58  bSizeLeftpReg->Add( m_bitmapRegul4pins, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 10 );
59 
60  m_bitmapRegul3pins = new wxStaticBitmap( m_panelRegulators, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
61  bSizeLeftpReg->Add( m_bitmapRegul3pins, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 );
62 
63 
64  bSizeLeftpReg->Add( 0, 0, 1, wxEXPAND, 5 );
65 
66  wxStaticBoxSizer* sbSizerRegFormula;
67  sbSizerRegFormula = new wxStaticBoxSizer( new wxStaticBox( m_panelRegulators, wxID_ANY, _("Formula") ), wxVERTICAL );
68 
69  m_RegulFormula = new wxStaticText( sbSizerRegFormula->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
70  m_RegulFormula->Wrap( -1 );
71  m_RegulFormula->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
72 
73  sbSizerRegFormula->Add( m_RegulFormula, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
74 
75 
76  bSizeLeftpReg->Add( sbSizerRegFormula, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
77 
78 
79  bSizerColBalancer->Add( bSizeLeftpReg, 0, wxTOP|wxRIGHT|wxEXPAND, 6 );
80 
81 
82  bSizerColBalancer->Add( 10, 0, 0, wxEXPAND, 5 );
83 
84  wxBoxSizer* bSizerRegulRight;
85  bSizerRegulRight = new wxBoxSizer( wxVERTICAL );
86 
87  wxFlexGridSizer* fgSizerRegParams;
88  fgSizerRegParams = new wxFlexGridSizer( 6, 4, 4, 0 );
89  fgSizerRegParams->AddGrowableCol( 2 );
90  fgSizerRegParams->SetFlexibleDirection( wxBOTH );
91  fgSizerRegParams->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
92 
93  m_rbRegulR1 = new wxRadioButton( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
94  m_rbRegulR1->SetValue( true );
95  fgSizerRegParams->Add( m_rbRegulR1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
96 
97  m_labelRegultR1 = new wxStaticText( m_panelRegulators, wxID_ANY, _("R1:"), wxDefaultPosition, wxDefaultSize, 0 );
98  m_labelRegultR1->Wrap( -1 );
99  fgSizerRegParams->Add( m_labelRegultR1, 0, wxALIGN_CENTER_VERTICAL, 5 );
100 
101  m_RegulR1Value = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
102  fgSizerRegParams->Add( m_RegulR1Value, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
103 
104  m_r1Units = new wxStaticText( m_panelRegulators, wxID_ANY, _("kOhm"), wxDefaultPosition, wxDefaultSize, 0 );
105  m_r1Units->Wrap( -1 );
106  fgSizerRegParams->Add( m_r1Units, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
107 
108  m_rbRegulR2 = new wxRadioButton( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
109  fgSizerRegParams->Add( m_rbRegulR2, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
110 
111  m_labelRegultR2 = new wxStaticText( m_panelRegulators, wxID_ANY, _("R2:"), wxDefaultPosition, wxDefaultSize, 0 );
112  m_labelRegultR2->Wrap( -1 );
113  fgSizerRegParams->Add( m_labelRegultR2, 0, wxALIGN_CENTER_VERTICAL, 5 );
114 
115  m_RegulR2Value = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
116  fgSizerRegParams->Add( m_RegulR2Value, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
117 
118  m_r2Units = new wxStaticText( m_panelRegulators, wxID_ANY, _("kOhm"), wxDefaultPosition, wxDefaultSize, 0 );
119  m_r2Units->Wrap( -1 );
120  fgSizerRegParams->Add( m_r2Units, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
121 
122  m_rbRegulVout = new wxRadioButton( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
123  fgSizerRegParams->Add( m_rbRegulVout, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
124 
125  m_labelVout = new wxStaticText( m_panelRegulators, wxID_ANY, _("Vout:"), wxDefaultPosition, wxDefaultSize, 0 );
126  m_labelVout->Wrap( -1 );
127  fgSizerRegParams->Add( m_labelVout, 0, wxALIGN_CENTER_VERTICAL, 5 );
128 
129  m_RegulVoutValue = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
130  fgSizerRegParams->Add( m_RegulVoutValue, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
131 
132  m_unitsVout = new wxStaticText( m_panelRegulators, wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
133  m_unitsVout->Wrap( -1 );
134  fgSizerRegParams->Add( m_unitsVout, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
135 
136 
137  fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
138 
139  m_labelVRef = new wxStaticText( m_panelRegulators, wxID_ANY, _("Vref:"), wxDefaultPosition, wxDefaultSize, 0 );
140  m_labelVRef->Wrap( -1 );
141  m_labelVRef->SetToolTip( _("The internal reference voltage of the regulator.\nShould not be 0.") );
142 
143  fgSizerRegParams->Add( m_labelVRef, 0, wxALIGN_CENTER_VERTICAL, 5 );
144 
145  m_RegulVrefValue = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
146  fgSizerRegParams->Add( m_RegulVrefValue, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
147 
148  m_unitsVref = new wxStaticText( m_panelRegulators, wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
149  m_unitsVref->Wrap( -1 );
150  fgSizerRegParams->Add( m_unitsVref, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
151 
152 
153  fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
154 
155  m_RegulIadjTitle = new wxStaticText( m_panelRegulators, wxID_ANY, _("Iadj:"), wxDefaultPosition, wxDefaultSize, 0 );
156  m_RegulIadjTitle->Wrap( -1 );
157  m_RegulIadjTitle->SetToolTip( _("For 3 terminal regulators only, the Adjust pin current.") );
158 
159  fgSizerRegParams->Add( m_RegulIadjTitle, 0, wxALIGN_CENTER_VERTICAL, 5 );
160 
161  m_RegulIadjValue = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
162  fgSizerRegParams->Add( m_RegulIadjValue, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
163 
164  m_IadjUnitLabel = new wxStaticText( m_panelRegulators, wxID_ANY, _("uA"), wxDefaultPosition, wxDefaultSize, 0 );
165  m_IadjUnitLabel->Wrap( -1 );
166  fgSizerRegParams->Add( m_IadjUnitLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
167 
168 
169  bSizerRegulRight->Add( fgSizerRegParams, 0, wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
170 
171  wxBoxSizer* bSizerRegulButtonCalcReset;
172  bSizerRegulButtonCalcReset = new wxBoxSizer( wxHORIZONTAL );
173 
174 
175  bSizerRegulButtonCalcReset->Add( 0, 0, 3, wxEXPAND, 5 );
176 
177  m_buttonCalculate = new wxButton( m_panelRegulators, wxID_ANY, _("Calculate"), wxDefaultPosition, wxDefaultSize, 0 );
178  bSizerRegulButtonCalcReset->Add( m_buttonCalculate, 6, wxTOP, 10 );
179 
180 
181  bSizerRegulButtonCalcReset->Add( 0, 0, 2, wxEXPAND, 5 );
182 
183  m_buttonRegulReset = new wxButton( m_panelRegulators, wxID_ANY, _("Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
184  bSizerRegulButtonCalcReset->Add( m_buttonRegulReset, 6, wxTOP, 10 );
185 
186 
187  bSizerRegulButtonCalcReset->Add( 0, 0, 3, wxEXPAND, 5 );
188 
189 
190  bSizerRegulRight->Add( bSizerRegulButtonCalcReset, 0, wxEXPAND|wxLEFT, 30 );
191 
192  m_RegulMessage = new wxStaticText( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
193  m_RegulMessage->Wrap( -1 );
194  bSizerRegulRight->Add( m_RegulMessage, 0, wxALL, 10 );
195 
196  wxStaticBoxSizer* sbSizerRegulatorsChooser;
197  sbSizerRegulatorsChooser = new wxStaticBoxSizer( new wxStaticBox( m_panelRegulators, wxID_ANY, _("Regulator") ), wxVERTICAL );
198 
199  wxArrayString m_choiceRegulatorSelectorChoices;
200  m_choiceRegulatorSelector = new wxChoice( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegulatorSelectorChoices, 0 );
201  m_choiceRegulatorSelector->SetSelection( 0 );
202  sbSizerRegulatorsChooser->Add( m_choiceRegulatorSelector, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
203 
204  m_staticTextRegFile = new wxStaticText( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Regulators data file:"), wxDefaultPosition, wxDefaultSize, 0 );
205  m_staticTextRegFile->Wrap( -1 );
206  m_staticTextRegFile->SetToolTip( _("The name of the data file which stores known regulators parameters.") );
207 
208  sbSizerRegulatorsChooser->Add( m_staticTextRegFile, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
209 
210  wxBoxSizer* bSizerDataFile;
211  bSizerDataFile = new wxBoxSizer( wxHORIZONTAL );
212 
213  m_regulators_fileNameCtrl = new wxTextCtrl( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
214  bSizerDataFile->Add( m_regulators_fileNameCtrl, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
215 
216  m_buttonDataFile = new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
217  bSizerDataFile->Add( m_buttonDataFile, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
218 
219 
220  sbSizerRegulatorsChooser->Add( bSizerDataFile, 1, wxEXPAND, 5 );
221 
222  wxBoxSizer* bSizerReulBtn;
223  bSizerReulBtn = new wxBoxSizer( wxHORIZONTAL );
224 
225  m_buttonEditItem = new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Edit Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
226  m_buttonEditItem->SetToolTip( _("Edit the current selected regulator.") );
227 
228  bSizerReulBtn->Add( m_buttonEditItem, 1, wxALL, 5 );
229 
230  m_buttonAddItem = new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Add Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
231  m_buttonAddItem->SetToolTip( _("Enter a new item to the current list of available regulators") );
232 
233  bSizerReulBtn->Add( m_buttonAddItem, 1, wxALL, 5 );
234 
235  m_buttonRemoveItem = new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, _("Remove Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
236  m_buttonRemoveItem->SetToolTip( _("Remove an item from the current list of available regulators") );
237 
238  bSizerReulBtn->Add( m_buttonRemoveItem, 1, wxALL, 5 );
239 
240 
241  sbSizerRegulatorsChooser->Add( bSizerReulBtn, 1, wxEXPAND, 5 );
242 
243 
244  bSizerRegulRight->Add( sbSizerRegulatorsChooser, 0, wxEXPAND|wxRIGHT, 10 );
245 
246 
247  bSizerColBalancer->Add( bSizerRegulRight, 1, wxEXPAND|wxTOP|wxLEFT, 10 );
248 
249 
250  bSizerMainReg->Add( bSizerColBalancer, 0, wxEXPAND, 5 );
251 
252 
253  m_panelRegulators->SetSizer( bSizerMainReg );
254  m_panelRegulators->Layout();
255  bSizerMainReg->Fit( m_panelRegulators );
256  m_Notebook->AddPage( m_panelRegulators, _("Regulators"), true );
257  m_panelAttenuators = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
258  wxBoxSizer* bSizerAtt;
259  bSizerAtt = new wxBoxSizer( wxHORIZONTAL );
260 
261  wxBoxSizer* bLeftSizerAtt;
262  bLeftSizerAtt = new wxBoxSizer( wxVERTICAL );
263 
264  bLeftSizerAtt->SetMinSize( wxSize( 260,-1 ) );
265  wxString m_AttenuatorsSelectionChoices[] = { _("PI"), _("Tee"), _("Bridged tee"), _("Resistive splitter") };
266  int m_AttenuatorsSelectionNChoices = sizeof( m_AttenuatorsSelectionChoices ) / sizeof( wxString );
267  m_AttenuatorsSelection = new wxRadioBox( m_panelAttenuators, wxID_ANY, _("Attenuators"), wxDefaultPosition, wxDefaultSize, m_AttenuatorsSelectionNChoices, m_AttenuatorsSelectionChoices, 1, wxRA_SPECIFY_COLS );
268  m_AttenuatorsSelection->SetSelection( 2 );
269  bLeftSizerAtt->Add( m_AttenuatorsSelection, 0, wxEXPAND|wxALL, 5 );
270 
271 
272  bLeftSizerAtt->Add( 0, 5, 0, wxEXPAND, 5 );
273 
274  m_attenuatorBitmap = new wxStaticBitmap( m_panelAttenuators, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
275  bLeftSizerAtt->Add( m_attenuatorBitmap, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 );
276 
277 
278  bSizerAtt->Add( bLeftSizerAtt, 0, wxEXPAND|wxRIGHT, 5 );
279 
280  wxBoxSizer* bMiddleSizerAtt;
281  bMiddleSizerAtt = new wxBoxSizer( wxVERTICAL );
282 
283  wxStaticBoxSizer* sbSizerAttPrms;
284  sbSizerAttPrms = new wxStaticBoxSizer( new wxStaticBox( m_panelAttenuators, wxID_ANY, _("Parameters") ), wxVERTICAL );
285 
286  wxFlexGridSizer* fgSizerAttPrms;
287  fgSizerAttPrms = new wxFlexGridSizer( 3, 3, 3, 0 );
288  fgSizerAttPrms->AddGrowableRow( 1 );
289  fgSizerAttPrms->SetFlexibleDirection( wxBOTH );
290  fgSizerAttPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
291 
292  m_attenuationLabel = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Attenuation:"), wxDefaultPosition, wxDefaultSize, 0 );
293  m_attenuationLabel->Wrap( -1 );
294  fgSizerAttPrms->Add( m_attenuationLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
295 
296  m_AttValueCtrl = new wxTextCtrl( sbSizerAttPrms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
297  fgSizerAttPrms->Add( m_AttValueCtrl, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
298 
299  m_attUnit = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("dB"), wxDefaultPosition, wxDefaultSize, 0 );
300  m_attUnit->Wrap( -1 );
301  fgSizerAttPrms->Add( m_attUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
302 
303  m_attenuationZinLabel = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Zin:"), wxDefaultPosition, wxDefaultSize, 0 );
304  m_attenuationZinLabel->Wrap( -1 );
305  fgSizerAttPrms->Add( m_attenuationZinLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
306 
307  m_ZinValueCtrl = new wxTextCtrl( sbSizerAttPrms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
308  fgSizerAttPrms->Add( m_ZinValueCtrl, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
309 
310  m_attZinUnit = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
311  m_attZinUnit->Wrap( -1 );
312  fgSizerAttPrms->Add( m_attZinUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
313 
314  m_ZoutLabel = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Zout:"), wxDefaultPosition, wxDefaultSize, 0 );
315  m_ZoutLabel->Wrap( -1 );
316  fgSizerAttPrms->Add( m_ZoutLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
317 
318  m_ZoutValueCtrl = new wxTextCtrl( sbSizerAttPrms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
319  fgSizerAttPrms->Add( m_ZoutValueCtrl, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
320 
321  m_attZoutUnit = new wxStaticText( sbSizerAttPrms->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
322  m_attZoutUnit->Wrap( -1 );
323  fgSizerAttPrms->Add( m_attZoutUnit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
324 
325 
326  sbSizerAttPrms->Add( fgSizerAttPrms, 0, wxEXPAND|wxBOTTOM, 5 );
327 
328 
329  bMiddleSizerAtt->Add( sbSizerAttPrms, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 );
330 
331  wxBoxSizer* bSizerAttButt;
332  bSizerAttButt = new wxBoxSizer( wxHORIZONTAL );
333 
334  m_buttonAlcAtt = new wxButton( m_panelAttenuators, wxID_ANY, _("Calculate"), wxDefaultPosition, wxDefaultSize, 0 );
335  bSizerAttButt->Add( m_buttonAlcAtt, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
336 
337  m_bpButtonCalcAtt = new wxBitmapButton( m_panelAttenuators, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
338  bSizerAttButt->Add( m_bpButtonCalcAtt, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
339 
340 
341  bMiddleSizerAtt->Add( bSizerAttButt, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
342 
343  wxStaticBoxSizer* sbSizerAttValues;
344  sbSizerAttValues = new wxStaticBoxSizer( new wxStaticBox( m_panelAttenuators, wxID_ANY, _("Values") ), wxVERTICAL );
345 
346  wxFlexGridSizer* fgSizerAttResults;
347  fgSizerAttResults = new wxFlexGridSizer( 3, 3, 3, 0 );
348  fgSizerAttResults->AddGrowableCol( 1 );
349  fgSizerAttResults->SetFlexibleDirection( wxBOTH );
350  fgSizerAttResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
351 
352  m_attenuatorR1Label = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("R1:"), wxDefaultPosition, wxDefaultSize, 0 );
353  m_attenuatorR1Label->Wrap( -1 );
354  fgSizerAttResults->Add( m_attenuatorR1Label, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
355 
356  m_Att_R1_Value = new wxTextCtrl( sbSizerAttValues->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
357  fgSizerAttResults->Add( m_Att_R1_Value, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
358 
359  m_attR1Unit = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
360  m_attR1Unit->Wrap( -1 );
361  fgSizerAttResults->Add( m_attR1Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
362 
363  m_attenuatorR2Label = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("R2:"), wxDefaultPosition, wxDefaultSize, 0 );
364  m_attenuatorR2Label->Wrap( -1 );
365  fgSizerAttResults->Add( m_attenuatorR2Label, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
366 
367  m_Att_R2_Value = new wxTextCtrl( sbSizerAttValues->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
368  fgSizerAttResults->Add( m_Att_R2_Value, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
369 
370  m_attR2Unit = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
371  m_attR2Unit->Wrap( -1 );
372  fgSizerAttResults->Add( m_attR2Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
373 
374  m_attenuatorR3Label = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("R3:"), wxDefaultPosition, wxDefaultSize, 0 );
375  m_attenuatorR3Label->Wrap( -1 );
376  fgSizerAttResults->Add( m_attenuatorR3Label, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
377 
378  m_Att_R3_Value = new wxTextCtrl( sbSizerAttValues->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
379  fgSizerAttResults->Add( m_Att_R3_Value, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
380 
381  m_attR3Unit = new wxStaticText( sbSizerAttValues->GetStaticBox(), wxID_ANY, _("Ohms"), wxDefaultPosition, wxDefaultSize, 0 );
382  m_attR3Unit->Wrap( -1 );
383  fgSizerAttResults->Add( m_attR3Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
384 
385 
386  sbSizerAttValues->Add( fgSizerAttResults, 0, wxEXPAND|wxBOTTOM, 5 );
387 
388 
389  bMiddleSizerAtt->Add( sbSizerAttValues, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 );
390 
391  wxBoxSizer* bSizerMessages;
392  bSizerMessages = new wxBoxSizer( wxVERTICAL );
393 
394  wxBoxSizer* bSizerIndentLabel;
395  bSizerIndentLabel = new wxBoxSizer( wxHORIZONTAL );
396 
397  m_staticTextAttMsg = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Messages"), wxDefaultPosition, wxDefaultSize, 0 );
398  m_staticTextAttMsg->Wrap( -1 );
399  bSizerIndentLabel->Add( m_staticTextAttMsg, 0, wxALL, 2 );
400 
401 
402  bSizerMessages->Add( bSizerIndentLabel, 0, wxLEFT, 6 );
403 
404  m_Attenuator_Messages = new wxHtmlWindow( m_panelAttenuators, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO );
405  bSizerMessages->Add( m_Attenuator_Messages, 1, wxEXPAND|wxBOTTOM|wxRIGHT, 8 );
406 
407 
408  bMiddleSizerAtt->Add( bSizerMessages, 1, wxEXPAND|wxLEFT, 3 );
409 
410 
411  bSizerAtt->Add( bMiddleSizerAtt, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
412 
413  wxStaticBoxSizer* sbRightSizerFormula;
414  sbRightSizerFormula = new wxStaticBoxSizer( new wxStaticBox( m_panelAttenuators, wxID_ANY, _("Formula") ), wxVERTICAL );
415 
416  m_panelAttFormula = new wxHtmlWindow( sbRightSizerFormula->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );
417  sbRightSizerFormula->Add( m_panelAttFormula, 1, wxEXPAND|wxBOTTOM, 5 );
418 
419 
420  bSizerAtt->Add( sbRightSizerFormula, 1, wxEXPAND|wxALL, 5 );
421 
422 
423  m_panelAttenuators->SetSizer( bSizerAtt );
424  m_panelAttenuators->Layout();
425  bSizerAtt->Fit( m_panelAttenuators );
426  m_Notebook->AddPage( m_panelAttenuators, _("RF Attenuators"), false );
427  m_panelESeries = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
428  wxBoxSizer* bSizerESerie;
429  bSizerESerie = new wxBoxSizer( wxVERTICAL );
430 
431  wxBoxSizer* bMiddleSizerESeries;
432  bMiddleSizerESeries = new wxBoxSizer( wxHORIZONTAL );
433 
434  wxStaticBoxSizer* sbSizerESeriesInput;
435  sbSizerESeriesInput = new wxStaticBoxSizer( new wxStaticBox( m_panelESeries, wxID_ANY, _("Inputs") ), wxVERTICAL );
436 
437  wxFlexGridSizer* fgSizerAttPrms1;
438  fgSizerAttPrms1 = new wxFlexGridSizer( 4, 3, 3, 0 );
439  fgSizerAttPrms1->AddGrowableRow( 1 );
440  fgSizerAttPrms1->SetFlexibleDirection( wxBOTH );
441  fgSizerAttPrms1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
442 
443  m_ESrequired = new wxStaticText( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("Required resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
444  m_ESrequired->Wrap( -1 );
445  fgSizerAttPrms1->Add( m_ESrequired, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
446 
447  m_ResRequired = new wxTextCtrl( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
448  fgSizerAttPrms1->Add( m_ResRequired, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
449 
450  m_reqResUnits = new wxStaticText( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("kOhm"), wxDefaultPosition, wxDefaultSize, 0 );
451  m_reqResUnits->Wrap( -1 );
452  fgSizerAttPrms1->Add( m_reqResUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
453 
454  m_ESrequired1 = new wxStaticText( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("Exclude value 1:"), wxDefaultPosition, wxDefaultSize, 0 );
455  m_ESrequired1->Wrap( -1 );
456  fgSizerAttPrms1->Add( m_ESrequired1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
457 
458  m_ResExclude1 = new wxTextCtrl( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
459  fgSizerAttPrms1->Add( m_ResExclude1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
460 
461  m_exclude1Units = new wxStaticText( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("kOhm"), wxDefaultPosition, wxDefaultSize, 0 );
462  m_exclude1Units->Wrap( -1 );
463  fgSizerAttPrms1->Add( m_exclude1Units, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
464 
465  m_ESrequired11 = new wxStaticText( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("Exclude value 2:"), wxDefaultPosition, wxDefaultSize, 0 );
466  m_ESrequired11->Wrap( -1 );
467  fgSizerAttPrms1->Add( m_ESrequired11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
468 
469  m_ResExclude2 = new wxTextCtrl( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
470  fgSizerAttPrms1->Add( m_ResExclude2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
471 
472  m_exclude2Units = new wxStaticText( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("kOhm"), wxDefaultPosition, wxDefaultSize, 0 );
473  m_exclude2Units->Wrap( -1 );
474  fgSizerAttPrms1->Add( m_exclude2Units, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
475 
476 
477  sbSizerESeriesInput->Add( fgSizerAttPrms1, 0, wxEXPAND|wxBOTTOM, 5 );
478 
479  m_staticline6 = new wxStaticLine( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
480  sbSizerESeriesInput->Add( m_staticline6, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
481 
482  wxBoxSizer* bSizer40;
483  bSizer40 = new wxBoxSizer( wxHORIZONTAL );
484 
485  m_e1 = new wxRadioButton( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("E1"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
486  bSizer40->Add( m_e1, 1, wxALL, 5 );
487 
488  m_e3 = new wxRadioButton( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("E3"), wxDefaultPosition, wxDefaultSize, 0 );
489  bSizer40->Add( m_e3, 1, wxALL, 5 );
490 
491  m_e6 = new wxRadioButton( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("E6"), wxDefaultPosition, wxDefaultSize, 0 );
492  m_e6->SetValue( true );
493  bSizer40->Add( m_e6, 1, wxALL, 5 );
494 
495  m_e12 = new wxRadioButton( sbSizerESeriesInput->GetStaticBox(), wxID_ANY, _("E12"), wxDefaultPosition, wxDefaultSize, 0 );
496  bSizer40->Add( m_e12, 1, wxALL, 5 );
497 
498 
499  sbSizerESeriesInput->Add( bSizer40, 1, wxEXPAND, 5 );
500 
501 
502  bMiddleSizerESeries->Add( sbSizerESeriesInput, 0, wxLEFT|wxRIGHT|wxTOP|wxEXPAND, 5 );
503 
504  wxStaticBoxSizer* sbSizerESeriesSolutions;
505  sbSizerESeriesSolutions = new wxStaticBoxSizer( new wxStaticBox( m_panelESeries, wxID_ANY, _("Solutions") ), wxVERTICAL );
506 
507  wxFlexGridSizer* fgSizerESerieResults;
508  fgSizerESerieResults = new wxFlexGridSizer( 6, 5, 3, 0 );
509  fgSizerESerieResults->AddGrowableCol( 1 );
510  fgSizerESerieResults->SetFlexibleDirection( wxBOTH );
511  fgSizerESerieResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
512 
513  m_ESerieSimpleSolution = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("Simple solution:"), wxDefaultPosition, wxDefaultSize, 0 );
514  m_ESerieSimpleSolution->Wrap( -1 );
515  fgSizerESerieResults->Add( m_ESerieSimpleSolution, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
516 
517  m_ESeries_Sol2R = new wxTextCtrl( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
518  m_ESeries_Sol2R->SetMinSize( wxSize( 150,-1 ) );
519 
520  fgSizerESerieResults->Add( m_ESeries_Sol2R, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
521 
522  m_ESeriesSimpleErr = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("Error:"), wxDefaultPosition, wxDefaultSize, 0 );
523  m_ESeriesSimpleErr->Wrap( -1 );
524  fgSizerESerieResults->Add( m_ESeriesSimpleErr, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
525 
526  m_ESeriesError2R = new wxTextCtrl( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
527  fgSizerESerieResults->Add( m_ESeriesError2R, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
528 
529  m_ESeriesSimplePercent = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
530  m_ESeriesSimplePercent->Wrap( -1 );
531  fgSizerESerieResults->Add( m_ESeriesSimplePercent, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
532 
533  m_ESerie3RSolution1 = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("3R solution:"), wxDefaultPosition, wxDefaultSize, 0 );
534  m_ESerie3RSolution1->Wrap( -1 );
535  fgSizerESerieResults->Add( m_ESerie3RSolution1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
536 
537  m_ESeries_Sol3R = new wxTextCtrl( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
538  m_ESeries_Sol3R->SetMinSize( wxSize( 220,-1 ) );
539 
540  fgSizerESerieResults->Add( m_ESeries_Sol3R, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
541 
542  m_ESeriesAltErr = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("Error:"), wxDefaultPosition, wxDefaultSize, 0 );
543  m_ESeriesAltErr->Wrap( -1 );
544  fgSizerESerieResults->Add( m_ESeriesAltErr, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
545 
546  m_ESeriesError3R = new wxTextCtrl( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
547  fgSizerESerieResults->Add( m_ESeriesError3R, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
548 
549  m_ESeriesAltPercent = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
550  m_ESeriesAltPercent->Wrap( -1 );
551  fgSizerESerieResults->Add( m_ESeriesAltPercent, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
552 
553  m_ESeries4RSolution = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("4R solution:"), wxDefaultPosition, wxDefaultSize, 0 );
554  m_ESeries4RSolution->Wrap( -1 );
555  fgSizerESerieResults->Add( m_ESeries4RSolution, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
556 
557  m_ESeries_Sol4R = new wxTextCtrl( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
558  m_ESeries_Sol4R->SetMinSize( wxSize( 290,-1 ) );
559 
560  fgSizerESerieResults->Add( m_ESeries_Sol4R, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxEXPAND, 5 );
561 
562  m_ESeriesAltErr1 = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("Error:"), wxDefaultPosition, wxDefaultSize, 0 );
563  m_ESeriesAltErr1->Wrap( -1 );
564  fgSizerESerieResults->Add( m_ESeriesAltErr1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
565 
566  m_ESeriesError4R = new wxTextCtrl( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
567  fgSizerESerieResults->Add( m_ESeriesError4R, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
568 
569  m_ESeriesAltPercent1 = new wxStaticText( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 );
570  m_ESeriesAltPercent1->Wrap( -1 );
571  fgSizerESerieResults->Add( m_ESeriesAltPercent1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
572 
573 
574  sbSizerESeriesSolutions->Add( fgSizerESerieResults, 0, wxBOTTOM|wxEXPAND, 5 );
575 
576  m_staticline7 = new wxStaticLine( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
577  sbSizerESeriesSolutions->Add( m_staticline7, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
578 
579  m_buttonEScalculate = new wxButton( sbSizerESeriesSolutions->GetStaticBox(), wxID_ANY, _("Calculate"), wxDefaultPosition, wxDefaultSize, 0 );
580  sbSizerESeriesSolutions->Add( m_buttonEScalculate, 0, wxALL, 5 );
581 
582 
583  bMiddleSizerESeries->Add( sbSizerESeriesSolutions, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
584 
585  wxBoxSizer* bSizer47;
586  bSizer47 = new wxBoxSizer( wxVERTICAL );
587 
588 
589  bMiddleSizerESeries->Add( bSizer47, 1, wxALIGN_BOTTOM, 5 );
590 
591 
592  bSizerESerie->Add( bMiddleSizerESeries, 0, wxEXPAND|wxTOP, 5 );
593 
594  wxBoxSizer* bLowerESerie;
595  bLowerESerie = new wxBoxSizer( wxHORIZONTAL );
596 
597  wxStaticBoxSizer* sbLowerSizerEseriesHelp;
598  sbLowerSizerEseriesHelp = new wxStaticBoxSizer( new wxStaticBox( m_panelESeries, wxID_ANY, _("Help") ), wxVERTICAL );
599 
600  m_panelESeriesHelp = new wxHtmlWindow( sbLowerSizerEseriesHelp->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );
601  sbLowerSizerEseriesHelp->Add( m_panelESeriesHelp, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
602 
603 
604  bLowerESerie->Add( sbLowerSizerEseriesHelp, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
605 
606 
607  bSizerESerie->Add( bLowerESerie, 1, wxEXPAND, 5 );
608 
609 
610  m_panelESeries->SetSizer( bSizerESerie );
611  m_panelESeries->Layout();
612  bSizerESerie->Fit( m_panelESeries );
613  m_Notebook->AddPage( m_panelESeries, _("E-Series"), false );
614  m_panelColorCode = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
615  wxBoxSizer* bSizerPanelColorCode;
616  bSizerPanelColorCode = new wxBoxSizer( wxHORIZONTAL );
617 
618  wxBoxSizer* bSizer38;
619  bSizer38 = new wxBoxSizer( wxVERTICAL );
620 
621  wxString m_rbToleranceSelectionChoices[] = { _("10% / 5%"), _("<= 2%") };
622  int m_rbToleranceSelectionNChoices = sizeof( m_rbToleranceSelectionChoices ) / sizeof( wxString );
623  m_rbToleranceSelection = new wxRadioBox( m_panelColorCode, wxID_ANY, _("Tolerance"), wxDefaultPosition, wxDefaultSize, m_rbToleranceSelectionNChoices, m_rbToleranceSelectionChoices, 1, wxRA_SPECIFY_COLS );
624  m_rbToleranceSelection->SetSelection( 0 );
625  bSizer38->Add( m_rbToleranceSelection, 0, wxBOTTOM|wxRIGHT, 30 );
626 
627 
628  bSizerPanelColorCode->Add( bSizer38, 0, wxALL, 8 );
629 
630  wxFlexGridSizer* fgSizerColoCode;
631  fgSizerColoCode = new wxFlexGridSizer( 2, 6, 0, 0 );
632  fgSizerColoCode->SetFlexibleDirection( wxBOTH );
633  fgSizerColoCode->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
634 
635  m_staticText31 = new wxStaticText( m_panelColorCode, wxID_ANY, _("1st Band"), wxDefaultPosition, wxDefaultSize, 0 );
636  m_staticText31->Wrap( -1 );
637  fgSizerColoCode->Add( m_staticText31, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
638 
639  m_staticText34 = new wxStaticText( m_panelColorCode, wxID_ANY, _("2nd Band"), wxDefaultPosition, wxDefaultSize, 0 );
640  m_staticText34->Wrap( -1 );
641  fgSizerColoCode->Add( m_staticText34, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
642 
643  m_staticText35 = new wxStaticText( m_panelColorCode, wxID_ANY, _("3rd Band"), wxDefaultPosition, wxDefaultSize, 0 );
644  m_staticText35->Wrap( -1 );
645  fgSizerColoCode->Add( m_staticText35, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
646 
647  m_Band4Label = new wxStaticText( m_panelColorCode, wxID_ANY, _("4th Band"), wxDefaultPosition, wxDefaultSize, 0 );
648  m_Band4Label->Wrap( -1 );
649  fgSizerColoCode->Add( m_Band4Label, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
650 
651  m_staticText37 = new wxStaticText( m_panelColorCode, wxID_ANY, _("Multiplier"), wxDefaultPosition, wxDefaultSize, 0 );
652  m_staticText37->Wrap( -1 );
653  fgSizerColoCode->Add( m_staticText37, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
654 
655  m_staticText38 = new wxStaticText( m_panelColorCode, wxID_ANY, _("Tolerance"), wxDefaultPosition, wxDefaultSize, 0 );
656  m_staticText38->Wrap( -1 );
657  fgSizerColoCode->Add( m_staticText38, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
658 
659  m_Band1bitmap = new wxStaticBitmap( m_panelColorCode, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
660  fgSizerColoCode->Add( m_Band1bitmap, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
661 
662  m_Band2bitmap = new wxStaticBitmap( m_panelColorCode, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
663  fgSizerColoCode->Add( m_Band2bitmap, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
664 
665  m_Band3bitmap = new wxStaticBitmap( m_panelColorCode, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
666  fgSizerColoCode->Add( m_Band3bitmap, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
667 
668  m_Band4bitmap = new wxStaticBitmap( m_panelColorCode, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
669  fgSizerColoCode->Add( m_Band4bitmap, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
670 
671  m_Band_mult_bitmap = new wxStaticBitmap( m_panelColorCode, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
672  fgSizerColoCode->Add( m_Band_mult_bitmap, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
673 
674  m_Band_tol_bitmap = new wxStaticBitmap( m_panelColorCode, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
675  fgSizerColoCode->Add( m_Band_tol_bitmap, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
676 
677 
678  bSizerPanelColorCode->Add( fgSizerColoCode, 1, wxEXPAND|wxLEFT, 5 );
679 
680 
681  m_panelColorCode->SetSizer( bSizerPanelColorCode );
682  m_panelColorCode->Layout();
683  bSizerPanelColorCode->Fit( m_panelColorCode );
684  m_Notebook->AddPage( m_panelColorCode, _("Color Code"), false );
685  m_panelTransline = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
686  wxBoxSizer* bSizeTransline;
687  bSizeTransline = new wxBoxSizer( wxHORIZONTAL );
688 
689  wxBoxSizer* bLeftSizer;
690  bLeftSizer = new wxBoxSizer( wxVERTICAL );
691 
692  wxString m_TranslineSelectionChoices[] = { _("Microstrip Line"), _("Coplanar wave guide"), _("Coplanar wave guide w/ ground plane"), _("Rectangular Waveguide"), _("Coaxial Line"), _("Coupled Microstrip Line"), _("Stripline"), _("Twisted Pair") };
693  int m_TranslineSelectionNChoices = sizeof( m_TranslineSelectionChoices ) / sizeof( wxString );
694  m_TranslineSelection = new wxRadioBox( m_panelTransline, wxID_ANY, _("Transmission Line Type"), wxDefaultPosition, wxDefaultSize, m_TranslineSelectionNChoices, m_TranslineSelectionChoices, 1, wxRA_SPECIFY_COLS );
695  m_TranslineSelection->SetSelection( 2 );
696  bLeftSizer->Add( m_TranslineSelection, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 );
697 
698 
699  bLeftSizer->Add( 0, 5, 0, wxEXPAND, 5 );
700 
701  m_translineBitmap = new wxStaticBitmap( m_panelTransline, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
702  bLeftSizer->Add( m_translineBitmap, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 );
703 
704 
705  bSizeTransline->Add( bLeftSizer, 0, wxEXPAND, 5 );
706 
707  wxBoxSizer* bMiddleSizer;
708  bMiddleSizer = new wxBoxSizer( wxVERTICAL );
709 
710  wxStaticBoxSizer* sbSubstrateBoxSizer;
711  sbSubstrateBoxSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Substrate Parameters") ), wxVERTICAL );
712 
713  wxFlexGridSizer* fgSizerSubstPrms;
714  fgSizerSubstPrms = new wxFlexGridSizer( 9, 3, 3, 0 );
715  fgSizerSubstPrms->AddGrowableCol( 1 );
716  fgSizerSubstPrms->SetFlexibleDirection( wxBOTH );
717  fgSizerSubstPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
718 
719  m_EpsilonR_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Er:"), wxDefaultPosition, wxDefaultSize, 0 );
720  m_EpsilonR_label->Wrap( -1 );
721  fgSizerSubstPrms->Add( m_EpsilonR_label, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
722 
723  wxBoxSizer* bSizer441;
724  bSizer441 = new wxBoxSizer( wxHORIZONTAL );
725 
726  m_Value_EpsilonR = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
727  bSizer441->Add( m_Value_EpsilonR, 1, wxEXPAND|wxLEFT, 5 );
728 
729  m_button_EpsilonR = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
730  bSizer441->Add( m_button_EpsilonR, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
731 
732 
733  fgSizerSubstPrms->Add( bSizer441, 1, wxEXPAND, 5 );
734 
735 
736  fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 );
737 
738  m_TanD_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Tan delta:"), wxDefaultPosition, wxDefaultSize, 0 );
739  m_TanD_label->Wrap( -1 );
740  fgSizerSubstPrms->Add( m_TanD_label, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
741 
742  wxBoxSizer* bSizer442;
743  bSizer442 = new wxBoxSizer( wxHORIZONTAL );
744 
745  m_Value_TanD = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
746  bSizer442->Add( m_Value_TanD, 1, wxEXPAND|wxLEFT, 5 );
747 
748  m_button_TanD = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
749  bSizer442->Add( m_button_TanD, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
750 
751 
752  fgSizerSubstPrms->Add( bSizer442, 1, wxEXPAND, 5 );
753 
754 
755  fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 );
756 
757  m_Rho_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Rho:"), wxDefaultPosition, wxDefaultSize, 0 );
758  m_Rho_label->Wrap( -1 );
759  m_Rho_label->SetToolTip( _("Specific resistance in ohms * meters") );
760 
761  fgSizerSubstPrms->Add( m_Rho_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
762 
763  wxBoxSizer* bSizer443;
764  bSizer443 = new wxBoxSizer( wxHORIZONTAL );
765 
766  m_Value_Rho = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
767  bSizer443->Add( m_Value_Rho, 1, wxEXPAND|wxLEFT, 5 );
768 
769  m_button_Rho = new wxButton( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
770  bSizer443->Add( m_button_Rho, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
771 
772 
773  fgSizerSubstPrms->Add( bSizer443, 1, wxEXPAND, 5 );
774 
775 
776  fgSizerSubstPrms->Add( 0, 0, 1, wxEXPAND, 5 );
777 
778  m_substrate_prm4_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("H:"), wxDefaultPosition, wxDefaultSize, 0 );
779  m_substrate_prm4_label->Wrap( -1 );
780  fgSizerSubstPrms->Add( m_substrate_prm4_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
781 
782  m_Substrate_prm4_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
783  fgSizerSubstPrms->Add( m_Substrate_prm4_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
784 
785  wxArrayString m_SubsPrm4_choiceUnitChoices;
786  m_SubsPrm4_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm4_choiceUnitChoices, 0 );
787  m_SubsPrm4_choiceUnit->SetSelection( 0 );
788  fgSizerSubstPrms->Add( m_SubsPrm4_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
789 
790  m_substrate_prm5_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("H_t:"), wxDefaultPosition, wxDefaultSize, 0 );
791  m_substrate_prm5_label->Wrap( -1 );
792  fgSizerSubstPrms->Add( m_substrate_prm5_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
793 
794  m_Substrate_prm5_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
795  fgSizerSubstPrms->Add( m_Substrate_prm5_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
796 
797  wxArrayString m_SubsPrm5_choiceUnitChoices;
798  m_SubsPrm5_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm5_choiceUnitChoices, 0 );
799  m_SubsPrm5_choiceUnit->SetSelection( 0 );
800  fgSizerSubstPrms->Add( m_SubsPrm5_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
801 
802  m_substrate_prm6_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("T:"), wxDefaultPosition, wxDefaultSize, 0 );
803  m_substrate_prm6_label->Wrap( -1 );
804  fgSizerSubstPrms->Add( m_substrate_prm6_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
805 
806  m_Substrate_prm6_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
807  fgSizerSubstPrms->Add( m_Substrate_prm6_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
808 
809  wxArrayString m_SubsPrm6_choiceUnitChoices;
810  m_SubsPrm6_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm6_choiceUnitChoices, 0 );
811  m_SubsPrm6_choiceUnit->SetSelection( 0 );
812  fgSizerSubstPrms->Add( m_SubsPrm6_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
813 
814  m_substrate_prm7_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Rough:"), wxDefaultPosition, wxDefaultSize, 0 );
815  m_substrate_prm7_label->Wrap( -1 );
816  fgSizerSubstPrms->Add( m_substrate_prm7_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
817 
818  m_Substrate_prm7_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
819  fgSizerSubstPrms->Add( m_Substrate_prm7_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
820 
821  wxArrayString m_SubsPrm7_choiceUnitChoices;
822  m_SubsPrm7_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm7_choiceUnitChoices, 0 );
823  m_SubsPrm7_choiceUnit->SetSelection( 0 );
824  fgSizerSubstPrms->Add( m_SubsPrm7_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
825 
826  m_substrate_prm8_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Insulator mu:"), wxDefaultPosition, wxDefaultSize, 0 );
827  m_substrate_prm8_label->Wrap( -1 );
828  fgSizerSubstPrms->Add( m_substrate_prm8_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
829 
830  m_Substrate_prm8_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
831  fgSizerSubstPrms->Add( m_Substrate_prm8_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
832 
833  wxArrayString m_SubsPrm8_choiceUnitChoices;
834  m_SubsPrm8_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm8_choiceUnitChoices, 0 );
835  m_SubsPrm8_choiceUnit->SetSelection( 0 );
836  fgSizerSubstPrms->Add( m_SubsPrm8_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
837 
838  m_substrate_prm9_label = new wxStaticText( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, _("Conductor mu:"), wxDefaultPosition, wxDefaultSize, 0 );
839  m_substrate_prm9_label->Wrap( -1 );
840  fgSizerSubstPrms->Add( m_substrate_prm9_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
841 
842  m_Substrate_prm9_Value = new wxTextCtrl( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
843  fgSizerSubstPrms->Add( m_Substrate_prm9_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
844 
845  wxArrayString m_SubsPrm9_choiceUnitChoices;
846  m_SubsPrm9_choiceUnit = new UNIT_SELECTOR_LEN( sbSubstrateBoxSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_SubsPrm9_choiceUnitChoices, 0 );
847  m_SubsPrm9_choiceUnit->SetSelection( 0 );
848  fgSizerSubstPrms->Add( m_SubsPrm9_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
849 
850 
851  sbSubstrateBoxSizer->Add( fgSizerSubstPrms, 1, wxEXPAND|wxBOTTOM, 5 );
852 
853 
854  bMiddleSizer->Add( sbSubstrateBoxSizer, 0, wxEXPAND|wxBOTTOM, 5 );
855 
856  wxStaticBoxSizer* sbCmpPrmsSizer;
857  sbCmpPrmsSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Component Parameters") ), wxVERTICAL );
858 
859  wxFlexGridSizer* fgSizeCmpPrms;
860  fgSizeCmpPrms = new wxFlexGridSizer( 1, 3, 0, 0 );
861  fgSizeCmpPrms->AddGrowableCol( 1 );
862  fgSizeCmpPrms->SetFlexibleDirection( wxBOTH );
863  fgSizeCmpPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
864 
865  m_Frequency_label = new wxStaticText( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, _("Frequency:"), wxDefaultPosition, wxDefaultSize, 0 );
866  m_Frequency_label->Wrap( -1 );
867  fgSizeCmpPrms->Add( m_Frequency_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
868 
869  m_Value_Frequency_Ctrl = new wxTextCtrl( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
870  fgSizeCmpPrms->Add( m_Value_Frequency_Ctrl, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
871 
872  wxArrayString m_choiceUnit_FrequencyChoices;
873  m_choiceUnit_Frequency = new UNIT_SELECTOR_FREQUENCY( sbCmpPrmsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_FrequencyChoices, 0 );
874  m_choiceUnit_Frequency->SetSelection( 0 );
875  fgSizeCmpPrms->Add( m_choiceUnit_Frequency, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
876 
877 
878  sbCmpPrmsSizer->Add( fgSizeCmpPrms, 0, wxEXPAND|wxBOTTOM, 5 );
879 
880 
881  bMiddleSizer->Add( sbCmpPrmsSizer, 0, wxEXPAND|wxTOP, 5 );
882 
883  wxBoxSizer* bSizerHelpBitmaps;
884  bSizerHelpBitmaps = new wxBoxSizer( wxVERTICAL );
885 
886  m_bmCMicrostripZoddZeven = new wxStaticBitmap( m_panelTransline, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
887  bSizerHelpBitmaps->Add( m_bmCMicrostripZoddZeven, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10 );
888 
889  m_fgSizerZcomment = new wxFlexGridSizer( 0, 2, 0, 15 );
890  m_fgSizerZcomment->AddGrowableCol( 0 );
891  m_fgSizerZcomment->AddGrowableCol( 1 );
892  m_fgSizerZcomment->SetFlexibleDirection( wxBOTH );
893  m_fgSizerZcomment->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
894 
895  m_staticTextZdiff = new wxStaticText( m_panelTransline, wxID_ANY, _("Zdiff =\n2*Z0( (1 - 0.48exp( -0.96*S/H ) )"), wxDefaultPosition, wxDefaultSize, 0 );
896  m_staticTextZdiff->Wrap( -1 );
897  m_staticTextZdiff->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
898 
899  m_fgSizerZcomment->Add( m_staticTextZdiff, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
900 
901  m_staticTextZcommon = new wxStaticText( m_panelTransline, wxID_ANY, _("Zcommon = Zeven / 2"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL );
902  m_staticTextZcommon->Wrap( -1 );
903  m_staticTextZcommon->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
904 
905  m_fgSizerZcomment->Add( m_staticTextZcommon, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
906 
907 
908  bSizerHelpBitmaps->Add( m_fgSizerZcomment, 0, wxEXPAND, 5 );
909 
910 
911  bMiddleSizer->Add( bSizerHelpBitmaps, 1, wxALIGN_CENTER_HORIZONTAL, 5 );
912 
913 
914  bSizeTransline->Add( bMiddleSizer, 1, wxALL|wxEXPAND, 5 );
915 
916  wxBoxSizer* bRightSizer;
917  bRightSizer = new wxBoxSizer( wxVERTICAL );
918 
919  wxStaticBoxSizer* btranslineRightSizer;
920  btranslineRightSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Physical Parameters") ), wxVERTICAL );
921 
922  wxFlexGridSizer* fgSizerPhysPrms;
923  fgSizerPhysPrms = new wxFlexGridSizer( 4, 4, 3, 0 );
924  fgSizerPhysPrms->AddGrowableCol( 1 );
925  fgSizerPhysPrms->SetFlexibleDirection( wxBOTH );
926  fgSizerPhysPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
927 
928  m_phys_prm1_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
929  m_phys_prm1_label->Wrap( -1 );
930  fgSizerPhysPrms->Add( m_phys_prm1_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
931 
932  m_Phys_prm1_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
933  fgSizerPhysPrms->Add( m_Phys_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
934 
935  wxArrayString m_choiceUnit_Param1Choices;
936  m_choiceUnit_Param1 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param1Choices, 0 );
937  m_choiceUnit_Param1->SetSelection( 0 );
938  fgSizerPhysPrms->Add( m_choiceUnit_Param1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
939 
940  m_radioBtnPrm1 = new wxRadioButton( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
941  fgSizerPhysPrms->Add( m_radioBtnPrm1, 0, wxALIGN_CENTER_VERTICAL, 5 );
942 
943  m_phys_prm2_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
944  m_phys_prm2_label->Wrap( -1 );
945  fgSizerPhysPrms->Add( m_phys_prm2_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
946 
947  m_Phys_prm2_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
948  fgSizerPhysPrms->Add( m_Phys_prm2_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
949 
950  wxArrayString m_choiceUnit_Param2Choices;
951  m_choiceUnit_Param2 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param2Choices, 0 );
952  m_choiceUnit_Param2->SetSelection( 0 );
953  fgSizerPhysPrms->Add( m_choiceUnit_Param2, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
954 
955  m_radioBtnPrm2 = new wxRadioButton( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
956  fgSizerPhysPrms->Add( m_radioBtnPrm2, 0, wxALIGN_CENTER_VERTICAL, 5 );
957 
958  m_phys_prm3_label = new wxStaticText( btranslineRightSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
959  m_phys_prm3_label->Wrap( -1 );
960  fgSizerPhysPrms->Add( m_phys_prm3_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
961 
962  m_Phys_prm3_Value = new wxTextCtrl( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
963  fgSizerPhysPrms->Add( m_Phys_prm3_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
964 
965  wxArrayString m_choiceUnit_Param3Choices;
966  m_choiceUnit_Param3 = new UNIT_SELECTOR_LEN( btranslineRightSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_Param3Choices, 0 );
967  m_choiceUnit_Param3->SetSelection( 0 );
968  fgSizerPhysPrms->Add( m_choiceUnit_Param3, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
969 
970 
971  fgSizerPhysPrms->Add( 0, 0, 0, 0, 5 );
972 
973 
974  btranslineRightSizer->Add( fgSizerPhysPrms, 0, wxEXPAND|wxBOTTOM, 5 );
975 
976 
977  bRightSizer->Add( btranslineRightSizer, 0, wxALL|wxEXPAND, 5 );
978 
979  wxBoxSizer* btranslineButtonsSizer;
980  btranslineButtonsSizer = new wxBoxSizer( wxVERTICAL );
981 
982  wxBoxSizer* bSizerButtons;
983  bSizerButtons = new wxBoxSizer( wxHORIZONTAL );
984 
985  m_bpButtonAnalyze = new wxBitmapButton( m_panelTransline, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
986  bSizerButtons->Add( m_bpButtonAnalyze, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
987 
988  m_AnalyseButton = new wxButton( m_panelTransline, wxID_ANY, _("Analyze"), wxDefaultPosition, wxDefaultSize, 0 );
989  bSizerButtons->Add( m_AnalyseButton, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
990 
991  m_SynthetizeButton = new wxButton( m_panelTransline, wxID_ANY, _("Synthesize"), wxDefaultPosition, wxDefaultSize, 0 );
992  bSizerButtons->Add( m_SynthetizeButton, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
993 
994  m_bpButtonSynthetize = new wxBitmapButton( m_panelTransline, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
995  bSizerButtons->Add( m_bpButtonSynthetize, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
996 
997 
998  btranslineButtonsSizer->Add( bSizerButtons, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
999 
1000 
1001  bRightSizer->Add( btranslineButtonsSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
1002 
1003  wxStaticBoxSizer* sbElectricalResultsSizer;
1004  sbElectricalResultsSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Electrical Parameters") ), wxVERTICAL );
1005 
1006  wxFlexGridSizer* fgSizerResults;
1007  fgSizerResults = new wxFlexGridSizer( 3, 3, 3, 0 );
1008  fgSizerResults->AddGrowableCol( 1 );
1009  fgSizerResults->SetFlexibleDirection( wxBOTH );
1010  fgSizerResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
1011 
1012  m_elec_prm1_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Z:"), wxDefaultPosition, wxDefaultSize, 0 );
1013  m_elec_prm1_label->Wrap( -1 );
1014  fgSizerResults->Add( m_elec_prm1_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1015 
1016  m_Elec_prm1_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1017  fgSizerResults->Add( m_Elec_prm1_Value, 0, wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
1018 
1019  wxArrayString m_choiceUnit_ElecPrm1Choices;
1020  m_choiceUnit_ElecPrm1 = new UNIT_SELECTOR_RESISTOR( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm1Choices, 0 );
1021  m_choiceUnit_ElecPrm1->SetSelection( 0 );
1022  fgSizerResults->Add( m_choiceUnit_ElecPrm1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1023 
1024  m_elec_prm2_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Z:"), wxDefaultPosition, wxDefaultSize, 0 );
1025  m_elec_prm2_label->Wrap( -1 );
1026  fgSizerResults->Add( m_elec_prm2_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1027 
1028  m_Elec_prm2_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1029  fgSizerResults->Add( m_Elec_prm2_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
1030 
1031  wxArrayString m_choiceUnit_ElecPrm2Choices;
1032  m_choiceUnit_ElecPrm2 = new UNIT_SELECTOR_RESISTOR( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm2Choices, 0 );
1033  m_choiceUnit_ElecPrm2->SetSelection( 0 );
1034  fgSizerResults->Add( m_choiceUnit_ElecPrm2, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1035 
1036  m_elec_prm3_label = new wxStaticText( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, _("Angle:"), wxDefaultPosition, wxDefaultSize, 0 );
1037  m_elec_prm3_label->Wrap( -1 );
1038  fgSizerResults->Add( m_elec_prm3_label, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
1039 
1040  m_Elec_prm3_Value = new wxTextCtrl( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1041  fgSizerResults->Add( m_Elec_prm3_Value, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
1042 
1043  wxArrayString m_choiceUnit_ElecPrm3Choices;
1044  m_choiceUnit_ElecPrm3 = new UNIT_SELECTOR_ANGLE( sbElectricalResultsSizer->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnit_ElecPrm3Choices, 0 );
1045  m_choiceUnit_ElecPrm3->SetSelection( 0 );
1046  fgSizerResults->Add( m_choiceUnit_ElecPrm3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1047 
1048 
1049  sbElectricalResultsSizer->Add( fgSizerResults, 0, wxEXPAND|wxBOTTOM, 5 );
1050 
1051 
1052  bRightSizer->Add( sbElectricalResultsSizer, 0, wxEXPAND|wxALL, 5 );
1053 
1054  wxStaticBoxSizer* sbMessagesSizer;
1055  sbMessagesSizer = new wxStaticBoxSizer( new wxStaticBox( m_panelTransline, wxID_ANY, _("Results") ), wxVERTICAL );
1056 
1057  wxFlexGridSizer* fgSizerTranslResults;
1058  fgSizerTranslResults = new wxFlexGridSizer( 8, 2, 0, 0 );
1059  fgSizerTranslResults->AddGrowableCol( 1 );
1060  fgSizerTranslResults->SetFlexibleDirection( wxBOTH );
1061  fgSizerTranslResults->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
1062 
1063  m_left_message1 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1064  m_left_message1->Wrap( -1 );
1065  fgSizerTranslResults->Add( m_left_message1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
1066 
1067  m_Message1 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1068  m_Message1->Wrap( -1 );
1069  fgSizerTranslResults->Add( m_Message1, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
1070 
1071  m_left_message2 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1072  m_left_message2->Wrap( -1 );
1073  fgSizerTranslResults->Add( m_left_message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
1074 
1075  m_Message2 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1076  m_Message2->Wrap( -1 );
1077  fgSizerTranslResults->Add( m_Message2, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
1078 
1079  m_left_message3 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1080  m_left_message3->Wrap( -1 );
1081  fgSizerTranslResults->Add( m_left_message3, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
1082 
1083  m_Message3 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1084  m_Message3->Wrap( -1 );
1085  fgSizerTranslResults->Add( m_Message3, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
1086 
1087  m_left_message4 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1088  m_left_message4->Wrap( -1 );
1089  fgSizerTranslResults->Add( m_left_message4, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
1090 
1091  m_Message4 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1092  m_Message4->Wrap( -1 );
1093  fgSizerTranslResults->Add( m_Message4, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
1094 
1095  m_left_message5 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1096  m_left_message5->Wrap( -1 );
1097  fgSizerTranslResults->Add( m_left_message5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxALIGN_RIGHT, 5 );
1098 
1099  m_Message5 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1100  m_Message5->Wrap( -1 );
1101  fgSizerTranslResults->Add( m_Message5, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
1102 
1103  m_left_message6 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1104  m_left_message6->Wrap( -1 );
1105  fgSizerTranslResults->Add( m_left_message6, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
1106 
1107  m_Message6 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1108  m_Message6->Wrap( -1 );
1109  fgSizerTranslResults->Add( m_Message6, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
1110 
1111  m_left_message7 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1112  m_left_message7->Wrap( -1 );
1113  fgSizerTranslResults->Add( m_left_message7, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
1114 
1115  m_Message7 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1116  m_Message7->Wrap( -1 );
1117  fgSizerTranslResults->Add( m_Message7, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
1118 
1119  m_left_message8 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1120  m_left_message8->Wrap( -1 );
1121  fgSizerTranslResults->Add( m_left_message8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 );
1122 
1123  m_Message8 = new wxStaticText( sbMessagesSizer->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1124  m_Message8->Wrap( -1 );
1125  fgSizerTranslResults->Add( m_Message8, 0, wxEXPAND|wxLEFT|wxRIGHT, 5 );
1126 
1127 
1128  sbMessagesSizer->Add( fgSizerTranslResults, 1, wxEXPAND, 5 );
1129 
1130 
1131  bRightSizer->Add( sbMessagesSizer, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
1132 
1133  m_buttonTransLineReset = new wxButton( m_panelTransline, wxID_ANY, _("Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
1134  bRightSizer->Add( m_buttonTransLineReset, 0, wxALIGN_RIGHT|wxALL, 5 );
1135 
1136 
1137  bSizeTransline->Add( bRightSizer, 1, wxEXPAND, 5 );
1138 
1139 
1140  m_panelTransline->SetSizer( bSizeTransline );
1141  m_panelTransline->Layout();
1142  bSizeTransline->Fit( m_panelTransline );
1143  m_Notebook->AddPage( m_panelTransline, _("TransLine"), false );
1144  m_panelViaSize = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
1145  wxBoxSizer* bSizerViaSize;
1146  bSizerViaSize = new wxBoxSizer( wxHORIZONTAL );
1147 
1148  wxBoxSizer* bSizerViaLeftColumn;
1149  bSizerViaLeftColumn = new wxBoxSizer( wxVERTICAL );
1150 
1151  wxStaticBoxSizer* sbSizerVS_Inputs;
1152  sbSizerVS_Inputs = new wxStaticBoxSizer( new wxStaticBox( m_panelViaSize, wxID_ANY, _("Parameters") ), wxVERTICAL );
1153 
1154  wxFlexGridSizer* fgSizerVS_Inputs;
1155  fgSizerVS_Inputs = new wxFlexGridSizer( 0, 3, 4, 0 );
1156  fgSizerVS_Inputs->AddGrowableCol( 1 );
1157  fgSizerVS_Inputs->SetFlexibleDirection( wxBOTH );
1158  fgSizerVS_Inputs->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
1159 
1160  m_staticTextHoleDia = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Finished hole diameter (D):"), wxDefaultPosition, wxDefaultSize, 0 );
1161  m_staticTextHoleDia->Wrap( -1 );
1162  m_staticTextHoleDia->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
1163 
1164  fgSizerVS_Inputs->Add( m_staticTextHoleDia, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1165 
1166  m_textCtrlHoleDia = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1167  fgSizerVS_Inputs->Add( m_textCtrlHoleDia, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1168 
1169  wxArrayString m_choiceHoleDiaChoices;
1170  m_choiceHoleDia = new UNIT_SELECTOR_LEN( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceHoleDiaChoices, 0 );
1171  m_choiceHoleDia->SetSelection( 0 );
1172  fgSizerVS_Inputs->Add( m_choiceHoleDia, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
1173 
1174  m_staticTextPlatingThickness = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Plating thickness (T):"), wxDefaultPosition, wxDefaultSize, 0 );
1175  m_staticTextPlatingThickness->Wrap( -1 );
1176  fgSizerVS_Inputs->Add( m_staticTextPlatingThickness, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1177 
1178  m_textCtrlPlatingThickness = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1179  fgSizerVS_Inputs->Add( m_textCtrlPlatingThickness, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1180 
1181  wxArrayString m_choicePlatingThicknessChoices;
1182  m_choicePlatingThickness = new UNIT_SELECTOR_LEN( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePlatingThicknessChoices, 0 );
1183  m_choicePlatingThickness->SetSelection( 0 );
1184  fgSizerVS_Inputs->Add( m_choicePlatingThickness, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
1185 
1186  m_staticTextViaLength = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Via length:"), wxDefaultPosition, wxDefaultSize, 0 );
1187  m_staticTextViaLength->Wrap( -1 );
1188  m_staticTextViaLength->SetToolTip( _("Via length is the board thickness for through hole vias") );
1189 
1190  fgSizerVS_Inputs->Add( m_staticTextViaLength, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1191 
1192  m_textCtrlViaLength = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1193  fgSizerVS_Inputs->Add( m_textCtrlViaLength, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1194 
1195  wxArrayString m_choiceViaLengthChoices;
1196  m_choiceViaLength = new UNIT_SELECTOR_LEN( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceViaLengthChoices, 0 );
1197  m_choiceViaLength->SetSelection( 0 );
1198  fgSizerVS_Inputs->Add( m_choiceViaLength, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
1199 
1200  m_staticTextViaPadDia = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Via pad diameter:"), wxDefaultPosition, wxDefaultSize, 0 );
1201  m_staticTextViaPadDia->Wrap( -1 );
1202  m_staticTextViaPadDia->SetToolTip( _("Diameter of pad surrounding via (annular ring)") );
1203 
1204  fgSizerVS_Inputs->Add( m_staticTextViaPadDia, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1205 
1206  m_textCtrlViaPadDia = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1207  fgSizerVS_Inputs->Add( m_textCtrlViaPadDia, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1208 
1209  wxArrayString m_choiceViaPadDiaChoices;
1210  m_choiceViaPadDia = new UNIT_SELECTOR_LEN( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceViaPadDiaChoices, 0 );
1211  m_choiceViaPadDia->SetSelection( 0 );
1212  fgSizerVS_Inputs->Add( m_choiceViaPadDia, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
1213 
1214  m_staticTextClearanceDia = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Clearance hole diameter:"), wxDefaultPosition, wxDefaultSize, 0 );
1215  m_staticTextClearanceDia->Wrap( -1 );
1216  m_staticTextClearanceDia->SetToolTip( _("Diameter of clearance hole in ground plane(s)") );
1217 
1218  fgSizerVS_Inputs->Add( m_staticTextClearanceDia, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1219 
1220  m_textCtrlClearanceDia = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1221  fgSizerVS_Inputs->Add( m_textCtrlClearanceDia, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1222 
1223  wxArrayString m_choiceClearanceDiaChoices;
1224  m_choiceClearanceDia = new UNIT_SELECTOR_LEN( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceClearanceDiaChoices, 0 );
1225  m_choiceClearanceDia->SetSelection( 0 );
1226  fgSizerVS_Inputs->Add( m_choiceClearanceDia, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
1227 
1228  m_staticTextImpedance = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Z0:"), wxDefaultPosition, wxDefaultSize, 0 );
1229  m_staticTextImpedance->Wrap( -1 );
1230  m_staticTextImpedance->SetToolTip( _("Characteristic impedance of conductor") );
1231 
1232  fgSizerVS_Inputs->Add( m_staticTextImpedance, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1233 
1234  m_textCtrlImpedance = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1235  fgSizerVS_Inputs->Add( m_textCtrlImpedance, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1236 
1237  wxArrayString m_choiceImpedanceChoices;
1238  m_choiceImpedance = new UNIT_SELECTOR_RESISTOR( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceImpedanceChoices, 0 );
1239  m_choiceImpedance->SetSelection( 0 );
1240  fgSizerVS_Inputs->Add( m_choiceImpedance, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
1241 
1242  m_staticAppliedCurrent = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Applied current:"), wxDefaultPosition, wxDefaultSize, 0 );
1243  m_staticAppliedCurrent->Wrap( -1 );
1244  fgSizerVS_Inputs->Add( m_staticAppliedCurrent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1245 
1246  m_textCtrlAppliedCurrent = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1247  fgSizerVS_Inputs->Add( m_textCtrlAppliedCurrent, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1248 
1249  m_staticTextAppliedCurrentUnits = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("A"), wxDefaultPosition, wxDefaultSize, 0 );
1250  m_staticTextAppliedCurrentUnits->Wrap( -1 );
1251  fgSizerVS_Inputs->Add( m_staticTextAppliedCurrentUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1252 
1253  m_staticTextResistivity = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Plating resistivity:"), wxDefaultPosition, wxDefaultSize, 0 );
1254  m_staticTextResistivity->Wrap( -1 );
1255  m_staticTextResistivity->SetToolTip( _("Specific resistance in ohms * meters") );
1256 
1257  fgSizerVS_Inputs->Add( m_staticTextResistivity, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1258 
1259  wxBoxSizer* bSizerResistivity;
1260  bSizerResistivity = new wxBoxSizer( wxHORIZONTAL );
1261 
1262  m_textCtrlPlatingResistivity = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1263  bSizerResistivity->Add( m_textCtrlPlatingResistivity, 1, wxEXPAND|wxLEFT, 5 );
1264 
1265  m_button_ResistivityVia = new wxButton( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
1266  bSizerResistivity->Add( m_button_ResistivityVia, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1267 
1268 
1269  fgSizerVS_Inputs->Add( bSizerResistivity, 1, wxEXPAND, 5 );
1270 
1271  m_viaResistivityUnits = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("ohm-meter"), wxDefaultPosition, wxDefaultSize, 0 );
1272  m_viaResistivityUnits->Wrap( -1 );
1273  fgSizerVS_Inputs->Add( m_viaResistivityUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
1274 
1275  m_staticTextPermittivity = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Substrate relative permittivity:"), wxDefaultPosition, wxDefaultSize, 0 );
1276  m_staticTextPermittivity->Wrap( -1 );
1277  m_staticTextPermittivity->SetToolTip( _("Relative dielectric constant (epsilon r)") );
1278 
1279  fgSizerVS_Inputs->Add( m_staticTextPermittivity, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1280 
1281  wxBoxSizer* bSizerPermittivity;
1282  bSizerPermittivity = new wxBoxSizer( wxHORIZONTAL );
1283 
1284  m_textCtrlPlatingPermittivity = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1285  bSizerPermittivity->Add( m_textCtrlPlatingPermittivity, 1, wxEXPAND|wxLEFT, 5 );
1286 
1287  m_button_Permittivity = new wxButton( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
1288  bSizerPermittivity->Add( m_button_Permittivity, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1289 
1290 
1291  fgSizerVS_Inputs->Add( bSizerPermittivity, 1, wxEXPAND, 5 );
1292 
1293 
1294  fgSizerVS_Inputs->Add( 0, 0, 1, wxEXPAND, 5 );
1295 
1296  m_staticTextTemperatureDiff = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Temperature rise:"), wxDefaultPosition, wxDefaultSize, 0 );
1297  m_staticTextTemperatureDiff->Wrap( -1 );
1298  m_staticTextTemperatureDiff->SetToolTip( _("Maximum acceptable rise in temperature") );
1299 
1300  fgSizerVS_Inputs->Add( m_staticTextTemperatureDiff, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1301 
1302  m_textCtrlTemperatureDiff = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1303  fgSizerVS_Inputs->Add( m_textCtrlTemperatureDiff, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1304 
1305  m_viaTempUnits = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("deg C"), wxDefaultPosition, wxDefaultSize, 0 );
1306  m_viaTempUnits->Wrap( -1 );
1307  fgSizerVS_Inputs->Add( m_viaTempUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1308 
1309  m_staticTextRiseTime = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("Pulse rise time:"), wxDefaultPosition, wxDefaultSize, 0 );
1310  m_staticTextRiseTime->Wrap( -1 );
1311  m_staticTextRiseTime->SetToolTip( _("Pulse rise time to calculate reactance") );
1312 
1313  fgSizerVS_Inputs->Add( m_staticTextRiseTime, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 );
1314 
1315  m_textCtrlRiseTime = new wxTextCtrl( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1316  fgSizerVS_Inputs->Add( m_textCtrlRiseTime, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1317 
1318  m_staticTextRiseTimeUnits = new wxStaticText( sbSizerVS_Inputs->GetStaticBox(), wxID_ANY, _("ns"), wxDefaultPosition, wxDefaultSize, 0 );
1319  m_staticTextRiseTimeUnits->Wrap( -1 );
1320  m_staticTextRiseTimeUnits->SetToolTip( _("nanoseconds") );
1321 
1322  fgSizerVS_Inputs->Add( m_staticTextRiseTimeUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1323 
1324 
1325  sbSizerVS_Inputs->Add( fgSizerVS_Inputs, 0, wxEXPAND, 5 );
1326 
1327 
1328  bSizerViaLeftColumn->Add( sbSizerVS_Inputs, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
1329 
1330  m_staticTextWarning = new wxStaticText( m_panelViaSize, wxID_ANY, _("Warning:\nVia pad diameter >= Clearance hole diameter.\nSome parameters cannot be calculated for a via inside a copper zone."), wxDefaultPosition, wxDefaultSize, 0 );
1331  m_staticTextWarning->Wrap( -1 );
1332  m_staticTextWarning->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
1333 
1334  bSizerViaLeftColumn->Add( m_staticTextWarning, 0, wxALL|wxEXPAND, 10 );
1335 
1336 
1337  bSizerViaSize->Add( bSizerViaLeftColumn, 1, wxEXPAND, 5 );
1338 
1339  wxBoxSizer* bSizerRight;
1340  bSizerRight = new wxBoxSizer( wxVERTICAL );
1341 
1342  bSizerRight->SetMinSize( wxSize( -1,460 ) );
1343  wxStaticBoxSizer* sbSizerVS_Result;
1344  sbSizerVS_Result = new wxStaticBoxSizer( new wxStaticBox( m_panelViaSize, wxID_ANY, _("Results") ), wxVERTICAL );
1345 
1346  wxFlexGridSizer* fgSizerTW_Results11;
1347  fgSizerTW_Results11 = new wxFlexGridSizer( 0, 3, 3, 0 );
1348  fgSizerTW_Results11->AddGrowableCol( 1 );
1349  fgSizerTW_Results11->AddGrowableCol( 2 );
1350  fgSizerTW_Results11->SetFlexibleDirection( wxBOTH );
1351  fgSizerTW_Results11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
1352 
1353  m_staticTextArea11 = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
1354  m_staticTextArea11->Wrap( -1 );
1355  fgSizerTW_Results11->Add( m_staticTextArea11, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1356 
1357  m_ViaResistance = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1358  m_ViaResistance->Wrap( -1 );
1359  fgSizerTW_Results11->Add( m_ViaResistance, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1360 
1361  m_viaResUnits = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("ohm"), wxDefaultPosition, wxDefaultSize, 0 );
1362  m_viaResUnits->Wrap( -1 );
1363  fgSizerTW_Results11->Add( m_viaResUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1364 
1365  m_staticText65111 = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Voltage drop:"), wxDefaultPosition, wxDefaultSize, 0 );
1366  m_staticText65111->Wrap( -1 );
1367  fgSizerTW_Results11->Add( m_staticText65111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1368 
1369  m_ViaVoltageDrop = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1370  m_ViaVoltageDrop->Wrap( -1 );
1371  fgSizerTW_Results11->Add( m_ViaVoltageDrop, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1372 
1373  m_staticText8411 = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
1374  m_staticText8411->Wrap( -1 );
1375  fgSizerTW_Results11->Add( m_staticText8411, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1376 
1377  m_staticText66111 = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Power loss:"), wxDefaultPosition, wxDefaultSize, 0 );
1378  m_staticText66111->Wrap( -1 );
1379  fgSizerTW_Results11->Add( m_staticText66111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1380 
1381  m_ViaPowerLoss = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1382  m_ViaPowerLoss->Wrap( -1 );
1383  fgSizerTW_Results11->Add( m_ViaPowerLoss, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1384 
1385  m_staticText8311 = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("W"), wxDefaultPosition, wxDefaultSize, 0 );
1386  m_staticText8311->Wrap( -1 );
1387  fgSizerTW_Results11->Add( m_staticText8311, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1388 
1389  m_staticText79211 = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Thermal resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
1390  m_staticText79211->Wrap( -1 );
1391  m_staticText79211->SetToolTip( _("Using thermal conductivity value 401 Watts/(meter-Kelvin)") );
1392 
1393  fgSizerTW_Results11->Add( m_staticText79211, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1394 
1395  m_ViaThermalResistance = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1396  m_ViaThermalResistance->Wrap( -1 );
1397  fgSizerTW_Results11->Add( m_ViaThermalResistance, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1398 
1399  m_viaThermalResUnits = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("deg C/W"), wxDefaultPosition, wxDefaultSize, 0 );
1400  m_viaThermalResUnits->Wrap( -1 );
1401  fgSizerTW_Results11->Add( m_viaThermalResUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1402 
1403  m_staticTextAmpacity = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Estimated ampacity:"), wxDefaultPosition, wxDefaultSize, 0 );
1404  m_staticTextAmpacity->Wrap( -1 );
1405  m_staticTextAmpacity->SetToolTip( _("Based on temperature rise") );
1406 
1407  fgSizerTW_Results11->Add( m_staticTextAmpacity, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
1408 
1409  m_ViaAmpacity = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1410  m_ViaAmpacity->Wrap( -1 );
1411  fgSizerTW_Results11->Add( m_ViaAmpacity, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1412 
1413  m_staticTextAmpacityUnits = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("A"), wxDefaultPosition, wxDefaultSize, 0 );
1414  m_staticTextAmpacityUnits->Wrap( -1 );
1415  fgSizerTW_Results11->Add( m_staticTextAmpacityUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
1416 
1417  m_staticTextCapacitance = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Capacitance:"), wxDefaultPosition, wxDefaultSize, 0 );
1418  m_staticTextCapacitance->Wrap( -1 );
1419  fgSizerTW_Results11->Add( m_staticTextCapacitance, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1420 
1421  m_ViaCapacitance = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1422  m_ViaCapacitance->Wrap( -1 );
1423  fgSizerTW_Results11->Add( m_ViaCapacitance, 0, wxRIGHT|wxLEFT, 5 );
1424 
1425  m_staticTextCapacitanceUnits = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("pF"), wxDefaultPosition, wxDefaultSize, 0 );
1426  m_staticTextCapacitanceUnits->Wrap( -1 );
1427  m_staticTextCapacitanceUnits->SetToolTip( _("pico-Farad") );
1428 
1429  fgSizerTW_Results11->Add( m_staticTextCapacitanceUnits, 0, wxRIGHT, 5 );
1430 
1431  m_staticTextRiseTimeOutput = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Rise time degradation:"), wxDefaultPosition, wxDefaultSize, 0 );
1432  m_staticTextRiseTimeOutput->Wrap( -1 );
1433  m_staticTextRiseTimeOutput->SetToolTip( _("Rise time degradation for given Z0 and calculated capacitance") );
1434 
1435  fgSizerTW_Results11->Add( m_staticTextRiseTimeOutput, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1436 
1437  m_RiseTimeOutput = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1438  m_RiseTimeOutput->Wrap( -1 );
1439  fgSizerTW_Results11->Add( m_RiseTimeOutput, 0, wxRIGHT|wxLEFT, 5 );
1440 
1441  m_staticTextRiseTimeOutputUnits = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("ps"), wxDefaultPosition, wxDefaultSize, 0 );
1442  m_staticTextRiseTimeOutputUnits->Wrap( -1 );
1443  m_staticTextRiseTimeOutputUnits->SetToolTip( _("picoseconds") );
1444 
1445  fgSizerTW_Results11->Add( m_staticTextRiseTimeOutputUnits, 0, wxRIGHT, 5 );
1446 
1447  m_staticTextInductance = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Inductance:"), wxDefaultPosition, wxDefaultSize, 0 );
1448  m_staticTextInductance->Wrap( -1 );
1449  fgSizerTW_Results11->Add( m_staticTextInductance, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1450 
1451  m_Inductance = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1452  m_Inductance->Wrap( -1 );
1453  fgSizerTW_Results11->Add( m_Inductance, 0, wxRIGHT|wxLEFT, 5 );
1454 
1455  m_staticTextInductanceUnits = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("nH"), wxDefaultPosition, wxDefaultSize, 0 );
1456  m_staticTextInductanceUnits->Wrap( -1 );
1457  m_staticTextInductanceUnits->SetToolTip( _("nano-Henry") );
1458 
1459  fgSizerTW_Results11->Add( m_staticTextInductanceUnits, 0, wxRIGHT, 5 );
1460 
1461  m_staticTextReactance = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("Reactance:"), wxDefaultPosition, wxDefaultSize, 0 );
1462  m_staticTextReactance->Wrap( -1 );
1463  m_staticTextReactance->SetToolTip( _("Inductive reactance for given rise time and calculated inductance") );
1464 
1465  fgSizerTW_Results11->Add( m_staticTextReactance, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1466 
1467  m_Reactance = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1468  m_Reactance->Wrap( -1 );
1469  fgSizerTW_Results11->Add( m_Reactance, 0, wxRIGHT|wxLEFT, 5 );
1470 
1471  m_viaReactanceUnits = new wxStaticText( sbSizerVS_Result->GetStaticBox(), wxID_ANY, _("ohm"), wxDefaultPosition, wxDefaultSize, 0 );
1472  m_viaReactanceUnits->Wrap( -1 );
1473  fgSizerTW_Results11->Add( m_viaReactanceUnits, 0, wxRIGHT, 5 );
1474 
1475 
1476  sbSizerVS_Result->Add( fgSizerTW_Results11, 0, wxEXPAND, 5 );
1477 
1478 
1479  bSizerRight->Add( sbSizerVS_Result, 0, wxEXPAND|wxALL, 5 );
1480 
1481  m_viaBitmap = new wxStaticBitmap( m_panelViaSize, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
1482  m_viaBitmap->SetToolTip( _("Top view of via") );
1483 
1484  bSizerRight->Add( m_viaBitmap, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 10 );
1485 
1486 
1487  bSizerRight->Add( 0, 0, 1, 0, 5 );
1488 
1489  m_buttonViaReset = new wxButton( m_panelViaSize, wxID_ANY, _("Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
1490  bSizerRight->Add( m_buttonViaReset, 0, wxALIGN_RIGHT|wxALL, 5 );
1491 
1492 
1493  bSizerViaSize->Add( bSizerRight, 0, wxEXPAND, 5 );
1494 
1495 
1496  m_panelViaSize->SetSizer( bSizerViaSize );
1497  m_panelViaSize->Layout();
1498  bSizerViaSize->Fit( m_panelViaSize );
1499  m_Notebook->AddPage( m_panelViaSize, _("Via Size"), false );
1500  m_panelTrackWidth = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
1501  wxBoxSizer* bSizerTrackWidth;
1502  bSizerTrackWidth = new wxBoxSizer( wxHORIZONTAL );
1503 
1504  wxBoxSizer* bSizeLeft;
1505  bSizeLeft = new wxBoxSizer( wxVERTICAL );
1506 
1507  wxStaticBoxSizer* sbSizerTW_Prms;
1508  sbSizerTW_Prms = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Parameters") ), wxVERTICAL );
1509 
1510  wxFlexGridSizer* fgSizerTWprms;
1511  fgSizerTWprms = new wxFlexGridSizer( 4, 3, 0, 0 );
1512  fgSizerTWprms->AddGrowableCol( 1 );
1513  fgSizerTWprms->SetFlexibleDirection( wxBOTH );
1514  fgSizerTWprms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
1515 
1516  m_staticTextCurrent = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Current:"), wxDefaultPosition, wxDefaultSize, 0 );
1517  m_staticTextCurrent->Wrap( -1 );
1518  fgSizerTWprms->Add( m_staticTextCurrent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
1519 
1520  m_TrackCurrentValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1521  fgSizerTWprms->Add( m_TrackCurrentValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1522 
1523  m_staticText62 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("A"), wxDefaultPosition, wxDefaultSize, 0 );
1524  m_staticText62->Wrap( -1 );
1525  fgSizerTWprms->Add( m_staticText62, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1526 
1527  m_staticText63 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Temperature rise:"), wxDefaultPosition, wxDefaultSize, 0 );
1528  m_staticText63->Wrap( -1 );
1529  fgSizerTWprms->Add( m_staticText63, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
1530 
1531  m_TrackDeltaTValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1532  fgSizerTWprms->Add( m_TrackDeltaTValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1533 
1534  m_trackTempUnits = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("deg C"), wxDefaultPosition, wxDefaultSize, 0 );
1535  m_trackTempUnits->Wrap( -1 );
1536  fgSizerTWprms->Add( m_trackTempUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1537 
1538  m_staticText66 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Conductor length:"), wxDefaultPosition, wxDefaultSize, 0 );
1539  m_staticText66->Wrap( -1 );
1540  fgSizerTWprms->Add( m_staticText66, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
1541 
1542  m_TrackLengthValue = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1543  fgSizerTWprms->Add( m_TrackLengthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1544 
1545  wxArrayString m_TW_CuLength_choiceUnitChoices;
1546  m_TW_CuLength_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_CuLength_choiceUnitChoices, 0 );
1547  m_TW_CuLength_choiceUnit->SetSelection( 0 );
1548  fgSizerTWprms->Add( m_TW_CuLength_choiceUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT, 5 );
1549 
1550  m_staticText103 = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("Copper resistivity:"), wxDefaultPosition, wxDefaultSize, 0 );
1551  m_staticText103->Wrap( -1 );
1552  fgSizerTWprms->Add( m_staticText103, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM, 5 );
1553 
1554  m_TWResistivity = new wxTextCtrl( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
1555  fgSizerTWprms->Add( m_TWResistivity, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1556 
1557  m_resistivityUnits = new wxStaticText( sbSizerTW_Prms->GetStaticBox(), wxID_ANY, _("ohm-meter"), wxDefaultPosition, wxDefaultSize, 0 );
1558  m_resistivityUnits->Wrap( -1 );
1559  fgSizerTWprms->Add( m_resistivityUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1560 
1561 
1562  sbSizerTW_Prms->Add( fgSizerTWprms, 0, wxEXPAND, 5 );
1563 
1564 
1565  bSizeLeft->Add( sbSizerTW_Prms, 0, wxALL|wxEXPAND, 5 );
1566 
1567  m_htmlWinFormulas = new wxHtmlWindow( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO );
1568  bSizeLeft->Add( m_htmlWinFormulas, 1, wxEXPAND|wxALL, 8 );
1569 
1570 
1571  bSizerTrackWidth->Add( bSizeLeft, 1, wxEXPAND, 5 );
1572 
1573  wxBoxSizer* bSizeRight;
1574  bSizeRight = new wxBoxSizer( wxVERTICAL );
1575 
1576  wxStaticBoxSizer* sbSizerTW_Result;
1577  sbSizerTW_Result = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("External Layer Traces") ), wxVERTICAL );
1578 
1579  wxFlexGridSizer* fgSizerTW_Results;
1580  fgSizerTW_Results = new wxFlexGridSizer( 0, 3, 0, 0 );
1581  fgSizerTW_Results->AddGrowableCol( 1 );
1582  fgSizerTW_Results->SetFlexibleDirection( wxBOTH );
1583  fgSizerTW_Results->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
1584 
1585  m_staticTextExtWidth = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Trace width:"), wxDefaultPosition, wxDefaultSize, 0 );
1586  m_staticTextExtWidth->Wrap( -1 );
1587  m_staticTextExtWidth->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
1588 
1589  fgSizerTW_Results->Add( m_staticTextExtWidth, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 );
1590 
1591  m_ExtTrackWidthValue = new wxTextCtrl( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1592  fgSizerTW_Results->Add( m_ExtTrackWidthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1593 
1594  wxArrayString m_TW_ExtTrackWidth_choiceUnitChoices;
1595  m_TW_ExtTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_ExtTrackWidth_choiceUnitChoices, 0 );
1596  m_TW_ExtTrackWidth_choiceUnit->SetSelection( 0 );
1597  fgSizerTW_Results->Add( m_TW_ExtTrackWidth_choiceUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1598 
1599  m_staticText65 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Trace thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
1600  m_staticText65->Wrap( -1 );
1601  fgSizerTW_Results->Add( m_staticText65, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1602 
1603  m_ExtTrackThicknessValue = new wxTextCtrl( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1604  fgSizerTW_Results->Add( m_ExtTrackThicknessValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
1605 
1606  wxArrayString m_ExtTrackThicknessUnitChoices;
1607  m_ExtTrackThicknessUnit = new UNIT_SELECTOR_THICKNESS( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ExtTrackThicknessUnitChoices, 0 );
1608  m_ExtTrackThicknessUnit->SetSelection( 0 );
1609  fgSizerTW_Results->Add( m_ExtTrackThicknessUnit, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
1610 
1611  m_staticline3 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
1612  fgSizerTW_Results->Add( m_staticline3, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
1613 
1614  m_staticline4 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
1615  fgSizerTW_Results->Add( m_staticline4, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
1616 
1617  m_staticline5 = new wxStaticLine( sbSizerTW_Result->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
1618  fgSizerTW_Results->Add( m_staticline5, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
1619 
1620  m_staticTextArea = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Cross-section area:"), wxDefaultPosition, wxDefaultSize, 0 );
1621  m_staticTextArea->Wrap( -1 );
1622  fgSizerTW_Results->Add( m_staticTextArea, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1623 
1624  m_ExtTrackAreaValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1625  m_ExtTrackAreaValue->Wrap( -1 );
1626  fgSizerTW_Results->Add( m_ExtTrackAreaValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1627 
1628  m_extTrackAreaUnitLabel = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
1629  m_extTrackAreaUnitLabel->Wrap( -1 );
1630  fgSizerTW_Results->Add( m_extTrackAreaUnitLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1631 
1632  m_staticText651 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
1633  m_staticText651->Wrap( -1 );
1634  fgSizerTW_Results->Add( m_staticText651, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1635 
1636  m_ExtTrackResistValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1637  m_ExtTrackResistValue->Wrap( -1 );
1638  fgSizerTW_Results->Add( m_ExtTrackResistValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1639 
1640  m_extTrackResUnits = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("ohm"), wxDefaultPosition, wxDefaultSize, 0 );
1641  m_extTrackResUnits->Wrap( -1 );
1642  fgSizerTW_Results->Add( m_extTrackResUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1643 
1644  m_staticText661 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Voltage drop:"), wxDefaultPosition, wxDefaultSize, 0 );
1645  m_staticText661->Wrap( -1 );
1646  fgSizerTW_Results->Add( m_staticText661, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1647 
1648  m_ExtTrackVDropValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1649  m_ExtTrackVDropValue->Wrap( -1 );
1650  fgSizerTW_Results->Add( m_ExtTrackVDropValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1651 
1652  m_staticText83 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
1653  m_staticText83->Wrap( -1 );
1654  fgSizerTW_Results->Add( m_staticText83, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1655 
1656  m_staticText79 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("Power loss:"), wxDefaultPosition, wxDefaultSize, 0 );
1657  m_staticText79->Wrap( -1 );
1658  fgSizerTW_Results->Add( m_staticText79, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1659 
1660  m_ExtTrackLossValue = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1661  m_ExtTrackLossValue->Wrap( -1 );
1662  fgSizerTW_Results->Add( m_ExtTrackLossValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1663 
1664  m_staticText791 = new wxStaticText( sbSizerTW_Result->GetStaticBox(), wxID_ANY, _("W"), wxDefaultPosition, wxDefaultSize, 0 );
1665  m_staticText791->Wrap( -1 );
1666  fgSizerTW_Results->Add( m_staticText791, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1667 
1668 
1669  sbSizerTW_Result->Add( fgSizerTW_Results, 0, wxEXPAND, 5 );
1670 
1671 
1672  bSizeRight->Add( sbSizerTW_Result, 1, wxEXPAND|wxALL, 5 );
1673 
1674  wxStaticBoxSizer* sbSizerTW_Result1;
1675  sbSizerTW_Result1 = new wxStaticBoxSizer( new wxStaticBox( m_panelTrackWidth, wxID_ANY, _("Internal Layer Traces") ), wxVERTICAL );
1676 
1677  wxFlexGridSizer* fgSizerTW_Results1;
1678  fgSizerTW_Results1 = new wxFlexGridSizer( 7, 3, 0, 0 );
1679  fgSizerTW_Results1->AddGrowableCol( 1 );
1680  fgSizerTW_Results1->SetFlexibleDirection( wxBOTH );
1681  fgSizerTW_Results1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
1682 
1683  m_staticTextIntWidth = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Trace width:"), wxDefaultPosition, wxDefaultSize, 0 );
1684  m_staticTextIntWidth->Wrap( -1 );
1685  m_staticTextIntWidth->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
1686 
1687  fgSizerTW_Results1->Add( m_staticTextIntWidth, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
1688 
1689  m_IntTrackWidthValue = new wxTextCtrl( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1690  fgSizerTW_Results1->Add( m_IntTrackWidthValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
1691 
1692  wxArrayString m_TW_IntTrackWidth_choiceUnitChoices;
1693  m_TW_IntTrackWidth_choiceUnit = new UNIT_SELECTOR_LEN( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_TW_IntTrackWidth_choiceUnitChoices, 0 );
1694  m_TW_IntTrackWidth_choiceUnit->SetSelection( 0 );
1695  fgSizerTW_Results1->Add( m_TW_IntTrackWidth_choiceUnit, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
1696 
1697  m_staticText652 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Trace thickness:"), wxDefaultPosition, wxDefaultSize, 0 );
1698  m_staticText652->Wrap( -1 );
1699  fgSizerTW_Results1->Add( m_staticText652, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
1700 
1701  m_IntTrackThicknessValue = new wxTextCtrl( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1702  fgSizerTW_Results1->Add( m_IntTrackThicknessValue, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
1703 
1704  wxArrayString m_IntTrackThicknessUnitChoices;
1705  m_IntTrackThicknessUnit = new UNIT_SELECTOR_THICKNESS( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_IntTrackThicknessUnitChoices, 0 );
1706  m_IntTrackThicknessUnit->SetSelection( 0 );
1707  fgSizerTW_Results1->Add( m_IntTrackThicknessUnit, 0, wxALL, 5 );
1708 
1709  m_staticline8 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
1710  fgSizerTW_Results1->Add( m_staticline8, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
1711 
1712  m_staticline9 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
1713  fgSizerTW_Results1->Add( m_staticline9, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
1714 
1715  m_staticline10 = new wxStaticLine( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
1716  fgSizerTW_Results1->Add( m_staticline10, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
1717 
1718  m_staticTextArea1 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Cross-section area:"), wxDefaultPosition, wxDefaultSize, 0 );
1719  m_staticTextArea1->Wrap( -1 );
1720  fgSizerTW_Results1->Add( m_staticTextArea1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
1721 
1722  m_IntTrackAreaValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1723  m_IntTrackAreaValue->Wrap( -1 );
1724  fgSizerTW_Results1->Add( m_IntTrackAreaValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
1725 
1726  m_intTrackAreaUnitLabel = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("mm ^ 2"), wxDefaultPosition, wxDefaultSize, 0 );
1727  m_intTrackAreaUnitLabel->Wrap( -1 );
1728  fgSizerTW_Results1->Add( m_intTrackAreaUnitLabel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
1729 
1730  m_staticText6511 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Resistance:"), wxDefaultPosition, wxDefaultSize, 0 );
1731  m_staticText6511->Wrap( -1 );
1732  fgSizerTW_Results1->Add( m_staticText6511, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1733 
1734  m_IntTrackResistValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1735  m_IntTrackResistValue->Wrap( -1 );
1736  fgSizerTW_Results1->Add( m_IntTrackResistValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1737 
1738  m_intTrackResUnits = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("ohm"), wxDefaultPosition, wxDefaultSize, 0 );
1739  m_intTrackResUnits->Wrap( -1 );
1740  fgSizerTW_Results1->Add( m_intTrackResUnits, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1741 
1742  m_staticText6611 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Voltage drop:"), wxDefaultPosition, wxDefaultSize, 0 );
1743  m_staticText6611->Wrap( -1 );
1744  fgSizerTW_Results1->Add( m_staticText6611, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1745 
1746  m_IntTrackVDropValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1747  m_IntTrackVDropValue->Wrap( -1 );
1748  fgSizerTW_Results1->Add( m_IntTrackVDropValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1749 
1750  m_staticText831 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 );
1751  m_staticText831->Wrap( -1 );
1752  fgSizerTW_Results1->Add( m_staticText831, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1753 
1754  m_staticText792 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("Power loss:"), wxDefaultPosition, wxDefaultSize, 0 );
1755  m_staticText792->Wrap( -1 );
1756  fgSizerTW_Results1->Add( m_staticText792, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1757 
1758  m_IntTrackLossValue = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
1759  m_IntTrackLossValue->Wrap( -1 );
1760  fgSizerTW_Results1->Add( m_IntTrackLossValue, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1761 
1762  m_staticText7911 = new wxStaticText( sbSizerTW_Result1->GetStaticBox(), wxID_ANY, _("W"), wxDefaultPosition, wxDefaultSize, 0 );
1763  m_staticText7911->Wrap( -1 );
1764  fgSizerTW_Results1->Add( m_staticText7911, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
1765 
1766 
1767  sbSizerTW_Result1->Add( fgSizerTW_Results1, 0, wxEXPAND, 5 );
1768 
1769 
1770  bSizeRight->Add( sbSizerTW_Result1, 1, wxEXPAND|wxALL, 5 );
1771 
1772  m_buttonTrackWidthReset = new wxButton( m_panelTrackWidth, wxID_ANY, _("Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
1773  bSizeRight->Add( m_buttonTrackWidthReset, 0, wxALIGN_RIGHT|wxALL, 5 );
1774 
1775 
1776  bSizerTrackWidth->Add( bSizeRight, 0, wxEXPAND, 5 );
1777 
1778 
1779  m_panelTrackWidth->SetSizer( bSizerTrackWidth );
1780  m_panelTrackWidth->Layout();
1781  bSizerTrackWidth->Fit( m_panelTrackWidth );
1782  m_Notebook->AddPage( m_panelTrackWidth, _("Track Width"), false );
1783  m_panelElectricalSpacing = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
1784  wxBoxSizer* bSizerElectricalClearance;
1785  bSizerElectricalClearance = new wxBoxSizer( wxHORIZONTAL );
1786 
1787  wxBoxSizer* bLeftSizerElectricalClearance;
1788  bLeftSizerElectricalClearance = new wxBoxSizer( wxVERTICAL );
1789 
1790  wxArrayString m_ElectricalSpacingUnitsSelectorChoices;
1791  m_ElectricalSpacingUnitsSelector = new UNIT_SELECTOR_LEN( m_panelElectricalSpacing, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ElectricalSpacingUnitsSelectorChoices, 0 );
1792  m_ElectricalSpacingUnitsSelector->SetSelection( -1 );
1793  m_ElectricalSpacingUnitsSelector->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_LIGHT, false, wxEmptyString ) );
1794 
1795  bLeftSizerElectricalClearance->Add( m_ElectricalSpacingUnitsSelector, 0, wxEXPAND|wxALL, 10 );
1796 
1797  m_staticline2 = new wxStaticLine( m_panelElectricalSpacing, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
1798  bLeftSizerElectricalClearance->Add( m_staticline2, 0, wxEXPAND|wxTOP|wxBOTTOM, 10 );
1799 
1800  m_staticText891 = new wxStaticText( m_panelElectricalSpacing, wxID_ANY, _("Voltage > 500 V:"), wxDefaultPosition, wxDefaultSize, 0 );
1801  m_staticText891->Wrap( -1 );
1802  bLeftSizerElectricalClearance->Add( m_staticText891, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
1803 
1804  m_ElectricalSpacingVoltage = new wxTextCtrl( m_panelElectricalSpacing, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
1805  bLeftSizerElectricalClearance->Add( m_ElectricalSpacingVoltage, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1806 
1807  m_buttonElectSpacingRefresh = new wxButton( m_panelElectricalSpacing, wxID_ANY, _("Update Values"), wxDefaultPosition, wxDefaultSize, 0 );
1808  bLeftSizerElectricalClearance->Add( m_buttonElectSpacingRefresh, 0, wxEXPAND|wxALL, 5 );
1809 
1810 
1811  bSizerElectricalClearance->Add( bLeftSizerElectricalClearance, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
1812 
1813  m_electricalSpacingSizer = new wxBoxSizer( wxVERTICAL );
1814 
1815  m_staticTextElectricalSpacing = new wxStaticText( m_panelElectricalSpacing, wxID_ANY, _("Note: Values are minimal values (from IPC 2221)"), wxDefaultPosition, wxDefaultSize, 0 );
1816  m_staticTextElectricalSpacing->Wrap( -1 );
1817  m_staticTextElectricalSpacing->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
1818 
1819  m_electricalSpacingSizer->Add( m_staticTextElectricalSpacing, 0, wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT, 5 );
1820 
1821  m_gridElectricalSpacingValues = new wxGrid( m_panelElectricalSpacing, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
1822 
1823  // Grid
1824  m_gridElectricalSpacingValues->CreateGrid( 10, 7 );
1825  m_gridElectricalSpacingValues->EnableEditing( false );
1826  m_gridElectricalSpacingValues->EnableGridLines( true );
1827  m_gridElectricalSpacingValues->EnableDragGridSize( false );
1828  m_gridElectricalSpacingValues->SetMargins( 0, 0 );
1829 
1830  // Columns
1831  m_gridElectricalSpacingValues->SetColSize( 0, 100 );
1832  m_gridElectricalSpacingValues->SetColSize( 1, 100 );
1833  m_gridElectricalSpacingValues->SetColSize( 2, 100 );
1834  m_gridElectricalSpacingValues->SetColSize( 3, 100 );
1835  m_gridElectricalSpacingValues->SetColSize( 4, 100 );
1836  m_gridElectricalSpacingValues->SetColSize( 5, 100 );
1837  m_gridElectricalSpacingValues->SetColSize( 6, 100 );
1838  m_gridElectricalSpacingValues->EnableDragColMove( false );
1839  m_gridElectricalSpacingValues->EnableDragColSize( true );
1840  m_gridElectricalSpacingValues->SetColLabelSize( 30 );
1841  m_gridElectricalSpacingValues->SetColLabelValue( 0, _("B1") );
1842  m_gridElectricalSpacingValues->SetColLabelValue( 1, _("B2") );
1843  m_gridElectricalSpacingValues->SetColLabelValue( 2, _("B3") );
1844  m_gridElectricalSpacingValues->SetColLabelValue( 3, _("B4") );
1845  m_gridElectricalSpacingValues->SetColLabelValue( 4, _("A5") );
1846  m_gridElectricalSpacingValues->SetColLabelValue( 5, _("A6") );
1847  m_gridElectricalSpacingValues->SetColLabelValue( 6, _("A7") );
1848  m_gridElectricalSpacingValues->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
1849 
1850  // Rows
1851  m_gridElectricalSpacingValues->SetRowSize( 0, 24 );
1852  m_gridElectricalSpacingValues->SetRowSize( 1, 24 );
1853  m_gridElectricalSpacingValues->SetRowSize( 2, 24 );
1854  m_gridElectricalSpacingValues->SetRowSize( 3, 24 );
1855  m_gridElectricalSpacingValues->SetRowSize( 4, 24 );
1856  m_gridElectricalSpacingValues->SetRowSize( 5, 24 );
1857  m_gridElectricalSpacingValues->SetRowSize( 6, 24 );
1858  m_gridElectricalSpacingValues->SetRowSize( 7, 24 );
1859  m_gridElectricalSpacingValues->SetRowSize( 8, 24 );
1860  m_gridElectricalSpacingValues->SetRowSize( 9, 24 );
1861  m_gridElectricalSpacingValues->EnableDragRowSize( false );
1862  m_gridElectricalSpacingValues->SetRowLabelSize( 100 );
1863  m_gridElectricalSpacingValues->SetRowLabelValue( 0, _("0 .. 15 V") );
1864  m_gridElectricalSpacingValues->SetRowLabelValue( 1, _("16 .. 30 V") );
1865  m_gridElectricalSpacingValues->SetRowLabelValue( 2, _("31 .. 50 V") );
1866  m_gridElectricalSpacingValues->SetRowLabelValue( 3, _("51 .. 100 V") );
1867  m_gridElectricalSpacingValues->SetRowLabelValue( 4, _("101 .. 150 V") );
1868  m_gridElectricalSpacingValues->SetRowLabelValue( 5, _("151 .. 170 V") );
1869  m_gridElectricalSpacingValues->SetRowLabelValue( 6, _("171 .. 250 V") );
1870  m_gridElectricalSpacingValues->SetRowLabelValue( 7, _("251 .. 300 V") );
1871  m_gridElectricalSpacingValues->SetRowLabelValue( 8, _("301 .. 500 V") );
1872  m_gridElectricalSpacingValues->SetRowLabelValue( 9, _(" > 500 V") );
1873  m_gridElectricalSpacingValues->SetRowLabelAlignment( wxALIGN_RIGHT, wxALIGN_CENTER );
1874 
1875  // Label Appearance
1876 
1877  // Cell Defaults
1878  m_gridElectricalSpacingValues->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
1880 
1881  m_staticText88 = new wxStaticText( m_panelElectricalSpacing, wxID_ANY, _("* B1 - Internal Conductors\n* B2 - External Conductors, uncoated, sea level to 3050 m\n* B3 - External Conductors, uncoated, over 3050 m\n* B4 - External Conductors, with permanent polymer coating (any elevation)\n* A5 - External Conductors, with conformal coating over assembly (any elevation)\n* A6 - External Component lead/termination, uncoated\n* A7 - External Component lead termination, with conformal coating (any elevation)"), wxDefaultPosition, wxDefaultSize, 0 );
1882  m_staticText88->Wrap( -1 );
1883  m_electricalSpacingSizer->Add( m_staticText88, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
1884 
1885 
1886  bSizerElectricalClearance->Add( m_electricalSpacingSizer, 1, wxEXPAND|wxLEFT, 20 );
1887 
1888 
1889  m_panelElectricalSpacing->SetSizer( bSizerElectricalClearance );
1890  m_panelElectricalSpacing->Layout();
1891  bSizerElectricalClearance->Fit( m_panelElectricalSpacing );
1892  m_Notebook->AddPage( m_panelElectricalSpacing, _("Electrical Spacing"), false );
1893  m_panelBoardClass = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
1894  wxBoxSizer* bSizerBoardClass;
1895  bSizerBoardClass = new wxBoxSizer( wxHORIZONTAL );
1896 
1897  wxBoxSizer* bSizerUnitsMargins;
1898  bSizerUnitsMargins = new wxBoxSizer( wxVERTICAL );
1899 
1900  wxArrayString m_BoardClassesUnitsSelectorChoices;
1901  m_BoardClassesUnitsSelector = new UNIT_SELECTOR_LEN( m_panelBoardClass, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_BoardClassesUnitsSelectorChoices, 0 );
1902  m_BoardClassesUnitsSelector->SetSelection( 0 );
1903  bSizerUnitsMargins->Add( m_BoardClassesUnitsSelector, 0, wxTOP|wxBOTTOM|wxRIGHT, 32 );
1904 
1905 
1906  bSizerBoardClass->Add( bSizerUnitsMargins, 0, wxLEFT, 10 );
1907 
1908  wxBoxSizer* brdclsSizerRight;
1909  brdclsSizerRight = new wxBoxSizer( wxVERTICAL );
1910 
1911  m_staticTextBrdClass = new wxStaticText( m_panelBoardClass, wxID_ANY, _("Note: Values are minimal values"), wxDefaultPosition, wxDefaultSize, 0 );
1912  m_staticTextBrdClass->Wrap( -1 );
1913  m_staticTextBrdClass->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_ITALIC, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
1914 
1915  brdclsSizerRight->Add( m_staticTextBrdClass, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
1916 
1917  m_gridClassesValuesDisplay = new wxGrid( m_panelBoardClass, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
1918 
1919  // Grid
1920  m_gridClassesValuesDisplay->CreateGrid( 5, 6 );
1921  m_gridClassesValuesDisplay->EnableEditing( false );
1922  m_gridClassesValuesDisplay->EnableGridLines( true );
1923  m_gridClassesValuesDisplay->EnableDragGridSize( false );
1924  m_gridClassesValuesDisplay->SetMargins( 0, 0 );
1925 
1926  // Columns
1927  m_gridClassesValuesDisplay->SetColSize( 0, 100 );
1928  m_gridClassesValuesDisplay->SetColSize( 1, 100 );
1929  m_gridClassesValuesDisplay->SetColSize( 2, 100 );
1930  m_gridClassesValuesDisplay->SetColSize( 3, 100 );
1931  m_gridClassesValuesDisplay->SetColSize( 4, 100 );
1932  m_gridClassesValuesDisplay->SetColSize( 5, 100 );
1933  m_gridClassesValuesDisplay->EnableDragColMove( false );
1934  m_gridClassesValuesDisplay->EnableDragColSize( true );
1935  m_gridClassesValuesDisplay->SetColLabelSize( 30 );
1936  m_gridClassesValuesDisplay->SetColLabelValue( 0, _("Class 1") );
1937  m_gridClassesValuesDisplay->SetColLabelValue( 1, _("Class 2") );
1938  m_gridClassesValuesDisplay->SetColLabelValue( 2, _("Class 3") );
1939  m_gridClassesValuesDisplay->SetColLabelValue( 3, _("Class 4") );
1940  m_gridClassesValuesDisplay->SetColLabelValue( 4, _("Class 5") );
1941  m_gridClassesValuesDisplay->SetColLabelValue( 5, _("Class 6") );
1942  m_gridClassesValuesDisplay->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
1943 
1944  // Rows
1945  m_gridClassesValuesDisplay->SetRowSize( 0, 24 );
1946  m_gridClassesValuesDisplay->SetRowSize( 1, 24 );
1947  m_gridClassesValuesDisplay->SetRowSize( 2, 24 );
1948  m_gridClassesValuesDisplay->SetRowSize( 3, 24 );
1949  m_gridClassesValuesDisplay->SetRowSize( 4, 24 );
1950  m_gridClassesValuesDisplay->EnableDragRowSize( false );
1951  m_gridClassesValuesDisplay->SetRowLabelSize( 160 );
1952  m_gridClassesValuesDisplay->SetRowLabelValue( 0, _("Lines width") );
1953  m_gridClassesValuesDisplay->SetRowLabelValue( 1, _("Min clearance") );
1954  m_gridClassesValuesDisplay->SetRowLabelValue( 2, _("Via: (diam - drill)") );
1955  m_gridClassesValuesDisplay->SetRowLabelValue( 3, _("Plated Pad: (diam - drill)") );
1956  m_gridClassesValuesDisplay->SetRowLabelValue( 4, _("NP Pad: (diam - drill)") );
1957  m_gridClassesValuesDisplay->SetRowLabelAlignment( wxALIGN_RIGHT, wxALIGN_CENTER );
1958 
1959  // Label Appearance
1960 
1961  // Cell Defaults
1962  m_gridClassesValuesDisplay->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
1963  brdclsSizerRight->Add( m_gridClassesValuesDisplay, 0, wxALL|wxEXPAND, 5 );
1964 
1965  m_panelShowClassPrms = new wxPanel( m_panelBoardClass, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
1966  brdclsSizerRight->Add( m_panelShowClassPrms, 1, wxALL|wxEXPAND, 5 );
1967 
1968 
1969  bSizerBoardClass->Add( brdclsSizerRight, 1, wxEXPAND, 5 );
1970 
1971 
1972  m_panelBoardClass->SetSizer( bSizerBoardClass );
1973  m_panelBoardClass->Layout();
1974  bSizerBoardClass->Fit( m_panelBoardClass );
1975  m_Notebook->AddPage( m_panelBoardClass, _("Board Classes"), false );
1976 
1977  bmainFrameSizer->Add( m_Notebook, 1, wxEXPAND, 5 );
1978 
1979 
1980  this->SetSizer( bmainFrameSizer );
1981  this->Layout();
1982  bmainFrameSizer->Fit( this );
1983 
1984  this->Centre( wxBOTH );
1985 
1986  // Connect Events
1987  this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PCB_CALCULATOR_FRAME_BASE::OnClosePcbCalc ) );
1988  this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PCB_CALCULATOR_FRAME_BASE::OnUpdateUI ) );
1989  m_choiceRegType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulTypeSelection ), NULL, this );
1990  m_buttonCalculate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorCalcButtonClick ), NULL, this );
1991  m_buttonRegulReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorResetButtonClick ), NULL, this );
1992  m_choiceRegulatorSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorSelection ), NULL, this );
1993  m_buttonDataFile->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnDataFileSelection ), NULL, this );
1994  m_buttonEditItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this );
1995  m_buttonAddItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this );
1996  m_buttonRemoveItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this );
1997  m_AttenuatorsSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAttenuatorSelection ), NULL, this );
1998  m_buttonAlcAtt->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnCalculateAttenuator ), NULL, this );
1999  m_bpButtonCalcAtt->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnCalculateAttenuator ), NULL, this );
2000  m_e1->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnESeriesSelection ), NULL, this );
2001  m_e3->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnESeriesSelection ), NULL, this );
2002  m_e6->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnESeriesSelection ), NULL, this );
2003  m_e12->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnESeriesSelection ), NULL, this );
2004  m_buttonEScalculate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnCalculateESeries ), NULL, this );
2005  m_rbToleranceSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnToleranceSelection ), NULL, this );
2006  m_TranslineSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSelection ), NULL, this );
2007  m_button_EpsilonR->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineEpsilonR_Button ), NULL, this );
2008  m_button_TanD->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineTanD_Button ), NULL, this );
2009  m_button_Rho->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineRho_Button ), NULL, this );
2010  m_bpButtonAnalyze->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineAnalyse ), NULL, this );
2011  m_AnalyseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineAnalyse ), NULL, this );
2012  m_SynthetizeButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSynthetize ), NULL, this );
2013  m_bpButtonSynthetize->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSynthetize ), NULL, this );
2014  m_buttonTransLineReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTransLineResetButtonClick ), NULL, this );
2015  m_textCtrlHoleDia->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2016  m_choiceHoleDia->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2017  m_textCtrlPlatingThickness->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2018  m_choicePlatingThickness->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2019  m_textCtrlViaLength->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2020  m_choiceViaLength->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2021  m_textCtrlViaPadDia->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2022  m_choiceViaPadDia->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2023  m_textCtrlClearanceDia->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2024  m_choiceClearanceDia->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2025  m_textCtrlImpedance->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2026  m_choiceImpedance->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2027  m_textCtrlAppliedCurrent->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2028  m_textCtrlPlatingResistivity->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2029  m_button_ResistivityVia->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaRho_Button ), NULL, this );
2030  m_textCtrlPlatingPermittivity->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2031  m_button_Permittivity->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaEpsilonR_Button ), NULL, this );
2032  m_textCtrlTemperatureDiff->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2033  m_textCtrlRiseTime->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2034  m_staticTextWarning->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PCB_CALCULATOR_FRAME_BASE::onUpdateViaCalcErrorText ), NULL, this );
2035  m_buttonViaReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaResetButtonClick ), NULL, this );
2036  m_TrackCurrentValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromCurrent ), NULL, this );
2037  m_TrackDeltaTValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2038  m_TrackLengthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2039  m_TW_CuLength_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2040  m_TWResistivity->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2041  m_ExtTrackWidthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromExtWidth ), NULL, this );
2042  m_TW_ExtTrackWidth_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2043  m_ExtTrackThicknessValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2044  m_ExtTrackThicknessUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2045  m_IntTrackWidthValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromIntWidth ), NULL, this );
2046  m_TW_IntTrackWidth_choiceUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2047  m_IntTrackThicknessValue->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2048  m_IntTrackThicknessUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2049  m_buttonTrackWidthReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWResetButtonClick ), NULL, this );
2050  m_ElectricalSpacingUnitsSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this );
2051  m_buttonElectSpacingRefresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this );
2052  m_BoardClassesUnitsSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnBoardClassesUnitsSelection ), NULL, this );
2053 }
virtual void OnRemoveRegulator(wxCommandEvent &event)
UNIT_SELECTOR_ANGLE * m_choiceUnit_ElecPrm3
virtual void OnAttenuatorSelection(wxCommandEvent &event)
virtual void OnRegulatorResetButtonClick(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_TW_ExtTrackWidth_choiceUnit
UNIT_SELECTOR_LEN * m_TW_IntTrackWidth_choiceUnit
virtual void OnViaCalculate(wxCommandEvent &event)
KIWAY_PLAYER(KIWAY *aKiway, wxWindow *aParent, FRAME_T aFrameType, const wxString &aTitle, const wxPoint &aPos, const wxSize &aSize, long aStyle, const wxString &aWdoName=wxFrameNameStr)
UNIT_SELECTOR_LEN * m_SubsPrm8_choiceUnit
virtual void OnViaResetButtonClick(wxCommandEvent &event)
virtual void OnViaRho_Button(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_SubsPrm5_choiceUnit
virtual void OnTWParametersChanged(wxCommandEvent &event)
UNIT_SELECTOR_FREQUENCY * m_choiceUnit_Frequency
virtual void OnTranslineTanD_Button(wxCommandEvent &event)
virtual void OnRegulatorCalcButtonClick(wxCommandEvent &event)
virtual void OnESeriesSelection(wxCommandEvent &event)
virtual void OnTranslineEpsilonR_Button(wxCommandEvent &event)
#define NULL
virtual void OnTWResetButtonClick(wxCommandEvent &event)
virtual void OnEditRegulator(wxCommandEvent &event)
virtual void OnElectricalSpacingUnitsSelection(wxCommandEvent &event)
virtual void OnCalculateAttenuator(wxCommandEvent &event)
virtual void OnRegulTypeSelection(wxCommandEvent &event)
#define _(s)
UNIT_SELECTOR_LEN * m_choiceClearanceDia
UNIT_SELECTOR_LEN * m_choicePlatingThickness
virtual void OnAddRegulator(wxCommandEvent &event)
virtual void OnCalculateESeries(wxCommandEvent &event)
virtual void onUpdateViaCalcErrorText(wxUpdateUIEvent &event)
virtual void OnUpdateUI(wxUpdateUIEvent &event)
virtual void OnTransLineResetButtonClick(wxCommandEvent &event)
virtual void OnToleranceSelection(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_SubsPrm4_choiceUnit
UNIT_SELECTOR_RESISTOR * m_choiceUnit_ElecPrm2
UNIT_SELECTOR_RESISTOR * m_choiceUnit_ElecPrm1
UNIT_SELECTOR_THICKNESS * m_IntTrackThicknessUnit
UNIT_SELECTOR_LEN * m_SubsPrm7_choiceUnit
virtual void OnTWCalculateFromExtWidth(wxCommandEvent &event)
virtual void OnTranslineSelection(wxCommandEvent &event)
UNIT_SELECTOR_RESISTOR * m_choiceImpedance
const char * name
Definition: DXF_plotter.cpp:56
virtual void OnRegulatorSelection(wxCommandEvent &event)
virtual void OnTranslineSynthetize(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_SubsPrm9_choiceUnit
UNIT_SELECTOR_LEN * m_SubsPrm6_choiceUnit
virtual void OnClosePcbCalc(wxCloseEvent &event)
UNIT_SELECTOR_LEN * m_BoardClassesUnitsSelector
virtual void OnViaEpsilonR_Button(wxCommandEvent &event)
virtual void OnTWCalculateFromIntWidth(wxCommandEvent &event)
virtual void OnTranslineRho_Button(wxCommandEvent &event)
virtual void OnTranslineAnalyse(wxCommandEvent &event)
virtual void OnTWCalculateFromCurrent(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_ElectricalSpacingUnitsSelector
virtual void OnElectricalSpacingRefresh(wxCommandEvent &event)
virtual void OnDataFileSelection(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_TW_CuLength_choiceUnit
UNIT_SELECTOR_THICKNESS * m_ExtTrackThicknessUnit
virtual void OnBoardClassesUnitsSelection(wxCommandEvent &event)

References _, m_AnalyseButton, m_Att_R1_Value, m_Att_R2_Value, m_Att_R3_Value, m_attenuationLabel, m_attenuationZinLabel, m_Attenuator_Messages, m_attenuatorBitmap, m_attenuatorR1Label, m_attenuatorR2Label, m_attenuatorR3Label, m_AttenuatorsSelection, m_attR1Unit, m_attR2Unit, m_attR3Unit, m_attUnit, m_AttValueCtrl, m_attZinUnit, m_attZoutUnit, m_Band1bitmap, m_Band2bitmap, m_Band3bitmap, m_Band4bitmap, m_Band4Label, m_Band_mult_bitmap, m_Band_tol_bitmap, m_bitmapRegul3pins, m_bitmapRegul4pins, m_bmCMicrostripZoddZeven, m_BoardClassesUnitsSelector, m_bpButtonAnalyze, m_bpButtonCalcAtt, m_bpButtonSynthetize, m_button_EpsilonR, m_button_Permittivity, m_button_ResistivityVia, m_button_Rho, m_button_TanD, m_buttonAddItem, m_buttonAlcAtt, m_buttonCalculate, m_buttonDataFile, m_buttonEditItem, m_buttonElectSpacingRefresh, m_buttonEScalculate, m_buttonRegulReset, m_buttonRemoveItem, m_buttonTrackWidthReset, m_buttonTransLineReset, m_buttonViaReset, m_choiceClearanceDia, m_choiceHoleDia, m_choiceImpedance, m_choicePlatingThickness, m_choiceRegType, m_choiceRegulatorSelector, m_choiceUnit_ElecPrm1, m_choiceUnit_ElecPrm2, m_choiceUnit_ElecPrm3, m_choiceUnit_Frequency, m_choiceUnit_Param1, m_choiceUnit_Param2, m_choiceUnit_Param3, m_choiceViaLength, m_choiceViaPadDia, m_e1, m_e12, m_e3, m_e6, m_elec_prm1_label, m_Elec_prm1_Value, m_elec_prm2_label, m_Elec_prm2_Value, m_elec_prm3_label, m_Elec_prm3_Value, m_electricalSpacingSizer, m_ElectricalSpacingUnitsSelector, m_ElectricalSpacingVoltage, m_EpsilonR_label, m_ESerie3RSolution1, m_ESeries4RSolution, m_ESeries_Sol2R, m_ESeries_Sol3R, m_ESeries_Sol4R, m_ESeriesAltErr, m_ESeriesAltErr1, m_ESeriesAltPercent, m_ESeriesAltPercent1, m_ESeriesError2R, m_ESeriesError3R, m_ESeriesError4R, m_ESerieSimpleSolution, m_ESeriesSimpleErr, m_ESeriesSimplePercent, m_ESrequired, m_ESrequired1, m_ESrequired11, m_exclude1Units, m_exclude2Units, m_extTrackAreaUnitLabel, m_ExtTrackAreaValue, m_ExtTrackLossValue, m_ExtTrackResistValue, m_extTrackResUnits, m_ExtTrackThicknessUnit, m_ExtTrackThicknessValue, m_ExtTrackVDropValue, m_ExtTrackWidthValue, m_fgSizerZcomment, m_Frequency_label, m_gridClassesValuesDisplay, m_gridElectricalSpacingValues, m_htmlWinFormulas, m_IadjUnitLabel, m_Inductance, m_intTrackAreaUnitLabel, m_IntTrackAreaValue, m_IntTrackLossValue, m_IntTrackResistValue, m_intTrackResUnits, m_IntTrackThicknessUnit, m_IntTrackThicknessValue, m_IntTrackVDropValue, m_IntTrackWidthValue, m_labelRegultR1, m_labelRegultR2, m_labelVout, m_labelVRef, m_left_message1, m_left_message2, m_left_message3, m_left_message4, m_left_message5, m_left_message6, m_left_message7, m_left_message8, m_menubar, m_Message1, m_Message2, m_Message3, m_Message4, m_Message5, m_Message6, m_Message7, m_Message8, m_Notebook, m_panelAttenuators, m_panelAttFormula, m_panelBoardClass, m_panelColorCode, m_panelElectricalSpacing, m_panelESeries, m_panelESeriesHelp, m_panelRegulators, m_panelShowClassPrms, m_panelTrackWidth, m_panelTransline, m_panelViaSize, m_phys_prm1_label, m_Phys_prm1_Value, m_phys_prm2_label, m_Phys_prm2_Value, m_phys_prm3_label, m_Phys_prm3_Value, m_r1Units, m_r2Units, m_radioBtnPrm1, m_radioBtnPrm2, m_rbRegulR1, m_rbRegulR2, m_rbRegulVout, m_rbToleranceSelection, m_Reactance, m_regulators_fileNameCtrl, m_RegulFormula, m_RegulIadjTitle, m_RegulIadjValue, m_RegulMessage, m_RegulR1Value, m_RegulR2Value, m_RegulVoutValue, m_RegulVrefValue, m_reqResUnits, m_ResExclude1, m_ResExclude2, m_resistivityUnits, m_ResRequired, m_Rho_label, m_RiseTimeOutput, m_staticAppliedCurrent, m_staticline10, m_staticline2, m_staticline3, m_staticline4, m_staticline5, m_staticline6, m_staticline7, m_staticline8, m_staticline9, m_staticText103, m_staticText31, m_staticText34, m_staticText35, m_staticText37, m_staticText38, m_staticText62, m_staticText63, m_staticText65, m_staticText651, m_staticText6511, m_staticText65111, m_staticText652, m_staticText66, m_staticText661, m_staticText6611, m_staticText66111, m_staticText79, m_staticText791, m_staticText7911, m_staticText792, m_staticText79211, m_staticText83, m_staticText831, m_staticText8311, m_staticText8411, m_staticText88, m_staticText891, m_staticTextAmpacity, m_staticTextAmpacityUnits, m_staticTextAppliedCurrentUnits, m_staticTextArea, m_staticTextArea1, m_staticTextArea11, m_staticTextAttMsg, m_staticTextBrdClass, m_staticTextCapacitance, m_staticTextCapacitanceUnits, m_staticTextClearanceDia, m_staticTextCurrent, m_staticTextElectricalSpacing, m_staticTextExtWidth, m_staticTextHoleDia, m_staticTextImpedance, m_staticTextInductance, m_staticTextInductanceUnits, m_staticTextIntWidth, m_staticTextPermittivity, m_staticTextPlatingThickness, m_staticTextReactance, m_staticTextRegFile, m_staticTextRegType, m_staticTextResistivity, m_staticTextRiseTime, m_staticTextRiseTimeOutput, m_staticTextRiseTimeOutputUnits, m_staticTextRiseTimeUnits, m_staticTextTemperatureDiff, m_staticTextViaLength, m_staticTextViaPadDia, m_staticTextWarning, m_staticTextZcommon, m_staticTextZdiff, m_SubsPrm4_choiceUnit, m_SubsPrm5_choiceUnit, m_SubsPrm6_choiceUnit, m_SubsPrm7_choiceUnit, m_SubsPrm8_choiceUnit, m_SubsPrm9_choiceUnit, m_substrate_prm4_label, m_Substrate_prm4_Value, m_substrate_prm5_label, m_Substrate_prm5_Value, m_substrate_prm6_label, m_Substrate_prm6_Value, m_substrate_prm7_label, m_Substrate_prm7_Value, m_substrate_prm8_label, m_Substrate_prm8_Value, m_substrate_prm9_label, m_Substrate_prm9_Value, m_SynthetizeButton, m_TanD_label, m_textCtrlAppliedCurrent, m_textCtrlClearanceDia, m_textCtrlHoleDia, m_textCtrlImpedance, m_textCtrlPlatingPermittivity, m_textCtrlPlatingResistivity, m_textCtrlPlatingThickness, m_textCtrlRiseTime, m_textCtrlTemperatureDiff, m_textCtrlViaLength, m_textCtrlViaPadDia, m_TrackCurrentValue, m_TrackDeltaTValue, m_TrackLengthValue, m_trackTempUnits, m_translineBitmap, m_TranslineSelection, m_TW_CuLength_choiceUnit, m_TW_ExtTrackWidth_choiceUnit, m_TW_IntTrackWidth_choiceUnit, m_TWResistivity, m_unitsVout, m_unitsVref, m_Value_EpsilonR, m_Value_Frequency_Ctrl, m_Value_Rho, m_Value_TanD, m_ViaAmpacity, m_viaBitmap, m_ViaCapacitance, m_ViaPowerLoss, m_viaReactanceUnits, m_ViaResistance, m_viaResistivityUnits, m_viaResUnits, m_viaTempUnits, m_ViaThermalResistance, m_viaThermalResUnits, m_ViaVoltageDrop, m_ZinValueCtrl, m_ZoutLabel, m_ZoutValueCtrl, NULL, OnAddRegulator(), OnAttenuatorSelection(), OnBoardClassesUnitsSelection(), OnCalculateAttenuator(), OnCalculateESeries(), OnClosePcbCalc(), OnDataFileSelection(), OnEditRegulator(), OnElectricalSpacingRefresh(), OnElectricalSpacingUnitsSelection(), OnESeriesSelection(), OnRegulatorCalcButtonClick(), OnRegulatorResetButtonClick(), OnRegulatorSelection(), OnRegulTypeSelection(), OnRemoveRegulator(), OnToleranceSelection(), OnTranslineAnalyse(), OnTranslineEpsilonR_Button(), OnTransLineResetButtonClick(), OnTranslineRho_Button(), OnTranslineSelection(), OnTranslineSynthetize(), OnTranslineTanD_Button(), OnTWCalculateFromCurrent(), OnTWCalculateFromExtWidth(), OnTWCalculateFromIntWidth(), OnTWParametersChanged(), OnTWResetButtonClick(), OnUpdateUI(), onUpdateViaCalcErrorText(), OnViaCalculate(), OnViaEpsilonR_Button(), OnViaResetButtonClick(), and OnViaRho_Button().

◆ ~PCB_CALCULATOR_FRAME_BASE()

PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE ( )

Definition at line 2055 of file pcb_calculator_frame_base.cpp.

2056 {
2057  // Disconnect Events
2058  this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PCB_CALCULATOR_FRAME_BASE::OnClosePcbCalc ) );
2059  this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PCB_CALCULATOR_FRAME_BASE::OnUpdateUI ) );
2060  m_choiceRegType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulTypeSelection ), NULL, this );
2061  m_buttonCalculate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorCalcButtonClick ), NULL, this );
2062  m_buttonRegulReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorResetButtonClick ), NULL, this );
2063  m_choiceRegulatorSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorSelection ), NULL, this );
2064  m_buttonDataFile->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnDataFileSelection ), NULL, this );
2065  m_buttonEditItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this );
2066  m_buttonAddItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this );
2067  m_buttonRemoveItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this );
2068  m_AttenuatorsSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAttenuatorSelection ), NULL, this );
2069  m_buttonAlcAtt->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnCalculateAttenuator ), NULL, this );
2070  m_bpButtonCalcAtt->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnCalculateAttenuator ), NULL, this );
2071  m_e1->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnESeriesSelection ), NULL, this );
2072  m_e3->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnESeriesSelection ), NULL, this );
2073  m_e6->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnESeriesSelection ), NULL, this );
2074  m_e12->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnESeriesSelection ), NULL, this );
2075  m_buttonEScalculate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnCalculateESeries ), NULL, this );
2076  m_rbToleranceSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnToleranceSelection ), NULL, this );
2077  m_TranslineSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSelection ), NULL, this );
2078  m_button_EpsilonR->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineEpsilonR_Button ), NULL, this );
2079  m_button_TanD->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineTanD_Button ), NULL, this );
2080  m_button_Rho->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineRho_Button ), NULL, this );
2081  m_bpButtonAnalyze->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineAnalyse ), NULL, this );
2082  m_AnalyseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineAnalyse ), NULL, this );
2083  m_SynthetizeButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSynthetize ), NULL, this );
2084  m_bpButtonSynthetize->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTranslineSynthetize ), NULL, this );
2085  m_buttonTransLineReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTransLineResetButtonClick ), NULL, this );
2086  m_textCtrlHoleDia->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2087  m_choiceHoleDia->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2088  m_textCtrlPlatingThickness->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2089  m_choicePlatingThickness->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2090  m_textCtrlViaLength->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2091  m_choiceViaLength->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2092  m_textCtrlViaPadDia->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2093  m_choiceViaPadDia->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2094  m_textCtrlClearanceDia->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2095  m_choiceClearanceDia->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2096  m_textCtrlImpedance->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2097  m_choiceImpedance->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2098  m_textCtrlAppliedCurrent->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2099  m_textCtrlPlatingResistivity->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2100  m_button_ResistivityVia->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaRho_Button ), NULL, this );
2101  m_textCtrlPlatingPermittivity->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2102  m_button_Permittivity->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaEpsilonR_Button ), NULL, this );
2103  m_textCtrlTemperatureDiff->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2104  m_textCtrlRiseTime->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaCalculate ), NULL, this );
2105  m_staticTextWarning->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PCB_CALCULATOR_FRAME_BASE::onUpdateViaCalcErrorText ), NULL, this );
2106  m_buttonViaReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnViaResetButtonClick ), NULL, this );
2107  m_TrackCurrentValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromCurrent ), NULL, this );
2108  m_TrackDeltaTValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2109  m_TrackLengthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2110  m_TW_CuLength_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2111  m_TWResistivity->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2112  m_ExtTrackWidthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromExtWidth ), NULL, this );
2113  m_TW_ExtTrackWidth_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2114  m_ExtTrackThicknessValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2115  m_ExtTrackThicknessUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2116  m_IntTrackWidthValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateFromIntWidth ), NULL, this );
2117  m_TW_IntTrackWidth_choiceUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2118  m_IntTrackThicknessValue->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2119  m_IntTrackThicknessUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWParametersChanged ), NULL, this );
2120  m_buttonTrackWidthReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWResetButtonClick ), NULL, this );
2121  m_ElectricalSpacingUnitsSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this );
2122  m_buttonElectSpacingRefresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this );
2123  m_BoardClassesUnitsSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnBoardClassesUnitsSelection ), NULL, this );
2124 
2125 }
virtual void OnRemoveRegulator(wxCommandEvent &event)
virtual void OnAttenuatorSelection(wxCommandEvent &event)
virtual void OnRegulatorResetButtonClick(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_TW_ExtTrackWidth_choiceUnit
UNIT_SELECTOR_LEN * m_TW_IntTrackWidth_choiceUnit
virtual void OnViaCalculate(wxCommandEvent &event)
virtual void OnViaResetButtonClick(wxCommandEvent &event)
virtual void OnViaRho_Button(wxCommandEvent &event)
virtual void OnTWParametersChanged(wxCommandEvent &event)
virtual void OnTranslineTanD_Button(wxCommandEvent &event)
virtual void OnRegulatorCalcButtonClick(wxCommandEvent &event)
virtual void OnESeriesSelection(wxCommandEvent &event)
virtual void OnTranslineEpsilonR_Button(wxCommandEvent &event)
#define NULL
virtual void OnTWResetButtonClick(wxCommandEvent &event)
virtual void OnEditRegulator(wxCommandEvent &event)
virtual void OnElectricalSpacingUnitsSelection(wxCommandEvent &event)
virtual void OnCalculateAttenuator(wxCommandEvent &event)
virtual void OnRegulTypeSelection(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_choiceClearanceDia
UNIT_SELECTOR_LEN * m_choicePlatingThickness
virtual void OnAddRegulator(wxCommandEvent &event)
virtual void OnCalculateESeries(wxCommandEvent &event)
virtual void onUpdateViaCalcErrorText(wxUpdateUIEvent &event)
virtual void OnUpdateUI(wxUpdateUIEvent &event)
virtual void OnTransLineResetButtonClick(wxCommandEvent &event)
virtual void OnToleranceSelection(wxCommandEvent &event)
UNIT_SELECTOR_THICKNESS * m_IntTrackThicknessUnit
virtual void OnTWCalculateFromExtWidth(wxCommandEvent &event)
virtual void OnTranslineSelection(wxCommandEvent &event)
UNIT_SELECTOR_RESISTOR * m_choiceImpedance
virtual void OnRegulatorSelection(wxCommandEvent &event)
virtual void OnTranslineSynthetize(wxCommandEvent &event)
virtual void OnClosePcbCalc(wxCloseEvent &event)
UNIT_SELECTOR_LEN * m_BoardClassesUnitsSelector
virtual void OnViaEpsilonR_Button(wxCommandEvent &event)
virtual void OnTWCalculateFromIntWidth(wxCommandEvent &event)
virtual void OnTranslineRho_Button(wxCommandEvent &event)
virtual void OnTranslineAnalyse(wxCommandEvent &event)
virtual void OnTWCalculateFromCurrent(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_ElectricalSpacingUnitsSelector
virtual void OnElectricalSpacingRefresh(wxCommandEvent &event)
virtual void OnDataFileSelection(wxCommandEvent &event)
UNIT_SELECTOR_LEN * m_TW_CuLength_choiceUnit
UNIT_SELECTOR_THICKNESS * m_ExtTrackThicknessUnit
virtual void OnBoardClassesUnitsSelection(wxCommandEvent &event)

References m_AnalyseButton, m_AttenuatorsSelection, m_BoardClassesUnitsSelector, m_bpButtonAnalyze, m_bpButtonCalcAtt, m_bpButtonSynthetize, m_button_EpsilonR, m_button_Permittivity, m_button_ResistivityVia, m_button_Rho, m_button_TanD, m_buttonAddItem, m_buttonAlcAtt, m_buttonCalculate, m_buttonDataFile, m_buttonEditItem, m_buttonElectSpacingRefresh, m_buttonEScalculate, m_buttonRegulReset, m_buttonRemoveItem, m_buttonTrackWidthReset, m_buttonTransLineReset, m_buttonViaReset, m_choiceClearanceDia, m_choiceHoleDia, m_choiceImpedance, m_choicePlatingThickness, m_choiceRegType, m_choiceRegulatorSelector, m_choiceViaLength, m_choiceViaPadDia, m_e1, m_e12, m_e3, m_e6, m_ElectricalSpacingUnitsSelector, m_ExtTrackThicknessUnit, m_ExtTrackThicknessValue, m_ExtTrackWidthValue, m_IntTrackThicknessUnit, m_IntTrackThicknessValue, m_IntTrackWidthValue, m_rbToleranceSelection, m_staticTextWarning, m_SynthetizeButton, m_textCtrlAppliedCurrent, m_textCtrlClearanceDia, m_textCtrlHoleDia, m_textCtrlImpedance, m_textCtrlPlatingPermittivity, m_textCtrlPlatingResistivity, m_textCtrlPlatingThickness, m_textCtrlRiseTime, m_textCtrlTemperatureDiff, m_textCtrlViaLength, m_textCtrlViaPadDia, m_TrackCurrentValue, m_TrackDeltaTValue, m_TrackLengthValue, m_TranslineSelection, m_TW_CuLength_choiceUnit, m_TW_ExtTrackWidth_choiceUnit, m_TW_IntTrackWidth_choiceUnit, m_TWResistivity, NULL, OnAddRegulator(), OnAttenuatorSelection(), OnBoardClassesUnitsSelection(), OnCalculateAttenuator(), OnCalculateESeries(), OnClosePcbCalc(), OnDataFileSelection(), OnEditRegulator(), OnElectricalSpacingRefresh(), OnElectricalSpacingUnitsSelection(), OnESeriesSelection(), OnRegulatorCalcButtonClick(), OnRegulatorResetButtonClick(), OnRegulatorSelection(), OnRegulTypeSelection(), OnRemoveRegulator(), OnToleranceSelection(), OnTranslineAnalyse(), OnTranslineEpsilonR_Button(), OnTransLineResetButtonClick(), OnTranslineRho_Button(), OnTranslineSelection(), OnTranslineSynthetize(), OnTranslineTanD_Button(), OnTWCalculateFromCurrent(), OnTWCalculateFromExtWidth(), OnTWCalculateFromIntWidth(), OnTWParametersChanged(), OnTWResetButtonClick(), OnUpdateUI(), onUpdateViaCalcErrorText(), OnViaCalculate(), OnViaEpsilonR_Button(), OnViaResetButtonClick(), and OnViaRho_Button().

Member Function Documentation

◆ AddStandardHelpMenu()

void EDA_BASE_FRAME::AddStandardHelpMenu ( wxMenuBar *  aMenuBar)
inherited

Adds the standard KiCad help menu to the menubar.

Definition at line 440 of file eda_base_frame.cpp.

441 {
442  COMMON_CONTROL* commonControl = m_toolManager->GetTool<COMMON_CONTROL>();
443  ACTION_MENU* helpMenu = new ACTION_MENU( false, commonControl );
444 
445  helpMenu->Add( ACTIONS::help );
446  helpMenu->Add( ACTIONS::gettingStarted );
447  helpMenu->Add( ACTIONS::listHotKeys );
448  helpMenu->Add( ACTIONS::getInvolved );
449  helpMenu->Add( ACTIONS::donate );
450  helpMenu->Add( ACTIONS::reportBug );
451 
452  helpMenu->AppendSeparator();
453  helpMenu->Add( _( "&About KiCad" ), "", wxID_ABOUT, BITMAPS::about );
454 
455  // Trailing space keeps OSX from hijacking our menu (and disabling everything in it).
456  aMenuBar->Append( helpMenu, _( "&Help" ) + wxS( " " ) );
457 }
static TOOL_ACTION listHotKeys
Definition: actions.h:178
Defines the structure of a menu based on ACTIONs.
Definition: action_menu.h:48
static TOOL_ACTION reportBug
Cursor control event types.
Definition: actions.h:181
static TOOL_ACTION donate
Definition: actions.h:179
#define _(s)
Handle actions that are shared between different applications.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:158
static TOOL_ACTION help
Definition: actions.h:177
static TOOL_ACTION getInvolved
Definition: actions.h:180
static TOOL_ACTION gettingStarted
Definition: actions.h:176

References _, about, ACTIONS::donate, ACTIONS::getInvolved, ACTIONS::gettingStarted, TOOL_MANAGER::GetTool(), ACTIONS::help, ACTIONS::listHotKeys, TOOLS_HOLDER::m_toolManager, and ACTIONS::reportBug.

Referenced by EDA_3D_VIEWER_FRAME::CreateMenuBar(), KICAD_MANAGER_FRAME::ReCreateMenuBar(), GERBVIEW_FRAME::ReCreateMenuBar(), SYMBOL_VIEWER_FRAME::ReCreateMenuBar(), SYMBOL_EDIT_FRAME::ReCreateMenuBar(), FOOTPRINT_EDIT_FRAME::ReCreateMenuBar(), FOOTPRINT_VIEWER_FRAME::ReCreateMenuBar(), PL_EDITOR_FRAME::ReCreateMenuBar(), CVPCB_MAINFRAME::ReCreateMenuBar(), SCH_EDIT_FRAME::ReCreateMenuBar(), and PCB_EDIT_FRA