12PANEL_REGULATOR_BASE::PANEL_REGULATOR_BASE( wxWindow* parent, wxWindowID 
id, 
const wxPoint& pos, 
const wxSize& size, 
long style, 
const wxString& 
name ) : 
CALCULATOR_PANEL( parent, id, pos, size, style, 
name )
 
   14    wxBoxSizer* bSizerMainReg;
 
   15    bSizerMainReg = 
new wxBoxSizer( wxVERTICAL );
 
   17    wxBoxSizer* bSizerColBalancer;
 
   18    bSizerColBalancer = 
new wxBoxSizer( wxHORIZONTAL );
 
   20    wxBoxSizer* bSizeLeftpReg;
 
   21    bSizeLeftpReg = 
new wxBoxSizer( wxVERTICAL );
 
   23    bSizeLeftpReg->SetMinSize( wxSize( 400,-1 ) );
 
   24    wxBoxSizer* bSizerType;
 
   25    bSizerType = 
new wxBoxSizer( wxHORIZONTAL );
 
   27    m_staticTextRegType = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Type:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   29    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.") );
 
   33    wxString m_choiceRegTypeChoices[] = { 
_(
"Standard Type"), 
_(
"3 Terminal Type") };
 
   34    int m_choiceRegTypeNChoices = 
sizeof( m_choiceRegTypeChoices ) / 
sizeof( wxString );
 
   35    m_choiceRegType = 
new wxChoice( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegTypeNChoices, m_choiceRegTypeChoices, 0 );
 
   37    bSizerType->Add( 
m_choiceRegType, 1, wxLEFT|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
 
   40    bSizeLeftpReg->Add( bSizerType, 0, wxEXPAND|wxALL, 5 );
 
   43    bSizeLeftpReg->Add( 0, 10, 0, wxEXPAND, 5 );
 
   45    m_bitmapRegul4pins = 
new wxStaticBitmap( 
this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
 
   46    bSizeLeftpReg->Add( 
m_bitmapRegul4pins, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 10 );
 
   48    m_bitmapRegul3pins = 
new wxStaticBitmap( 
this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
 
   52    bSizeLeftpReg->Add( 0, 10, 0, wxEXPAND, 5 );
 
   54    wxStaticBoxSizer* sbSizerRegFormula;
 
   55    sbSizerRegFormula = 
new wxStaticBoxSizer( 
new wxStaticBox( 
this, wxID_ANY, 
_(
"Formula") ), wxVERTICAL );
 
   57    m_RegulFormula = 
new wxStaticText( sbSizerRegFormula->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
   59    m_RegulFormula->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, 
false, wxEmptyString ) );
 
   61    sbSizerRegFormula->Add( 
m_RegulFormula, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
   64    bSizeLeftpReg->Add( sbSizerRegFormula, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
   67    bSizerColBalancer->Add( bSizeLeftpReg, 0, wxTOP|wxRIGHT|wxEXPAND, 6 );
 
   70    bSizerColBalancer->Add( 10, 0, 0, wxEXPAND, 5 );
 
   72    wxBoxSizer* bSizerRegulRight;
 
   73    bSizerRegulRight = 
new wxBoxSizer( wxVERTICAL );
 
   76    bSizer9 = 
new wxBoxSizer( wxVERTICAL );
 
   78    wxStaticBoxSizer* sbSizerRegulatorsChooser;
 
   79    sbSizerRegulatorsChooser = 
new wxStaticBoxSizer( 
new wxStaticBox( 
this, wxID_ANY, 
_(
"Regulator") ), wxVERTICAL );
 
   81    wxArrayString m_choiceRegulatorSelectorChoices;
 
   82    m_choiceRegulatorSelector = 
new wxChoice( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegulatorSelectorChoices, 0 );
 
   86    m_staticTextRegFile = 
new wxStaticText( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, 
_(
"Regulators data file:"), wxDefaultPosition, wxDefaultSize, 0 );
 
   88    m_staticTextRegFile->SetToolTip( 
_(
"The name of the data file which stores known regulators parameters.") );
 
   92    wxBoxSizer* bSizerDataFile;
 
   93    bSizerDataFile = 
new wxBoxSizer( wxHORIZONTAL );
 
   95    m_regulators_fileNameCtrl = 
new wxTextCtrl( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
   98    m_buttonDataFile = 
new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, 
_(
"Browse"), wxDefaultPosition, wxDefaultSize, 0 );
 
  102    sbSizerRegulatorsChooser->Add( bSizerDataFile, 1, wxEXPAND, 5 );
 
  104    wxBoxSizer* bSizerReulBtn;
 
  105    bSizerReulBtn = 
new wxBoxSizer( wxHORIZONTAL );
 
  107    m_buttonEditItem = 
new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, 
_(
"Edit Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
 
  112    m_buttonAddItem = 
new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, 
_(
"Add Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
 
  113    m_buttonAddItem->SetToolTip( 
_(
"Enter a new item to the current list of available regulators") );
 
  117    m_buttonRemoveItem = 
new wxButton( sbSizerRegulatorsChooser->GetStaticBox(), wxID_ANY, 
_(
"Remove Regulator"), wxDefaultPosition, wxDefaultSize, 0 );
 
  118    m_buttonRemoveItem->SetToolTip( 
_(
"Remove an item from the current list of available regulators") );
 
  123    sbSizerRegulatorsChooser->Add( bSizerReulBtn, 1, wxEXPAND, 5 );
 
  126    bSizer9->Add( sbSizerRegulatorsChooser, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 );
 
  129    bSizer9->Add( 0, 10, 1, wxEXPAND, 5 );
 
  131    wxFlexGridSizer* fgSizerRegParams;
 
  132    fgSizerRegParams = 
new wxFlexGridSizer( 7, 6, 4, 0 );
 
  133    fgSizerRegParams->AddGrowableCol( 1 );
 
  134    fgSizerRegParams->SetFlexibleDirection( wxBOTH );
 
  135    fgSizerRegParams->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
  138    fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
 
  141    fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
 
  143    m_labelValMin = 
new wxStaticText( 
this, wxID_ANY, 
_(
"min"), wxDefaultPosition, wxDefaultSize, 0 );
 
  145    fgSizerRegParams->Add( 
m_labelValMin, 0, wxALIGN_CENTER|wxALL, 5 );
 
  147    m_labelValTyp = 
new wxStaticText( 
this, wxID_ANY, 
_(
"typ"), wxDefaultPosition, wxDefaultSize, 0 );
 
  149    fgSizerRegParams->Add( 
m_labelValTyp, 0, wxALIGN_CENTER|wxALL, 5 );
 
  151    m_labelValMax = 
new wxStaticText( 
this, wxID_ANY, 
_(
"max"), wxDefaultPosition, wxDefaultSize, 0 );
 
  153    fgSizerRegParams->Add( 
m_labelValMax, 0, wxALIGN_CENTER|wxALL, 5 );
 
  156    fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
 
  158    m_rbRegulR1 = 
new wxRadioButton( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
 
  159    fgSizerRegParams->Add( 
m_rbRegulR1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  161    m_labelRegultR1 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"R1:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  163    fgSizerRegParams->Add( 
m_labelRegultR1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  165    m_r1MinVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  166    m_r1MinVal->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  168    fgSizerRegParams->Add( 
m_r1MinVal, 0, wxALL|wxEXPAND, 5 );
 
  170    m_r1TypVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  171    fgSizerRegParams->Add( 
m_r1TypVal, 0, wxALL|wxEXPAND, 5 );
 
  173    m_r1MaxVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  174    m_r1MaxVal->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  176    fgSizerRegParams->Add( 
m_r1MaxVal, 0, wxALL|wxEXPAND, 5 );
 
  178    m_labelUnitsR1 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"kΩ"), wxDefaultPosition, wxDefaultSize, 0 );
 
  180    fgSizerRegParams->Add( 
m_labelUnitsR1, 0, wxALIGN_CENTER_VERTICAL, 5 );
 
  182    m_rbRegulR2 = 
new wxRadioButton( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  184    fgSizerRegParams->Add( 
m_rbRegulR2, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  186    m_labelRegultR2 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"R2:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  188    fgSizerRegParams->Add( 
m_labelRegultR2, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  190    m_r2MinVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  191    m_r2MinVal->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  193    fgSizerRegParams->Add( 
m_r2MinVal, 0, wxALL|wxEXPAND, 5 );
 
  195    m_r2TypVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  196    fgSizerRegParams->Add( 
m_r2TypVal, 0, wxALL|wxEXPAND, 5 );
 
  198    m_r2MaxVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  199    m_r2MaxVal->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  201    fgSizerRegParams->Add( 
m_r2MaxVal, 0, wxALL|wxEXPAND, 5 );
 
  203    m_labelUnitsR2 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"kΩ"), wxDefaultPosition, wxDefaultSize, 0 );
 
  205    fgSizerRegParams->Add( 
m_labelUnitsR2, 0, wxALIGN_CENTER_VERTICAL, 5 );
 
  207    m_rbRegulVout = 
new wxRadioButton( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  208    fgSizerRegParams->Add( 
m_rbRegulVout, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  210    m_labelVout = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Vout:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  212    fgSizerRegParams->Add( 
m_labelVout, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  214    m_voutMinVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  215    m_voutMinVal->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  217    fgSizerRegParams->Add( 
m_voutMinVal, 0, wxALL|wxEXPAND, 5 );
 
  219    m_voutTypVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  220    fgSizerRegParams->Add( 
m_voutTypVal, 0, wxALL|wxEXPAND, 5 );
 
  222    m_voutMaxVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  223    m_voutMaxVal->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  225    fgSizerRegParams->Add( 
m_voutMaxVal, 0, wxALL|wxEXPAND, 5 );
 
  227    m_labelUnitsVout = 
new wxStaticText( 
this, wxID_ANY, 
_(
"V"), wxDefaultPosition, wxDefaultSize, 0 );
 
  232    fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
 
  234    m_labelVRef = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Vref:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  236    m_labelVRef->SetToolTip( 
_(
"The internal reference voltage of the regulator.\nShould not be 0.") );
 
  238    fgSizerRegParams->Add( 
m_labelVRef, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  240    m_vrefMinVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  241    fgSizerRegParams->Add( 
m_vrefMinVal, 0, wxALL|wxEXPAND, 5 );
 
  243    m_vrefTypVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  244    fgSizerRegParams->Add( 
m_vrefTypVal, 0, wxALL|wxEXPAND, 5 );
 
  246    m_vrefMaxVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  247    fgSizerRegParams->Add( 
m_vrefMaxVal, 0, wxALL|wxEXPAND, 5 );
 
  249    m_labelUnitsVref = 
new wxStaticText( 
this, wxID_ANY, 
_(
"V"), wxDefaultPosition, wxDefaultSize, 0 );
 
  254    fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
 
  256    m_RegulIadjTitle = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Iadj:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  258    m_RegulIadjTitle->SetToolTip( 
_(
"For 3 terminal regulators only, the  Adjust pin current.") );
 
  260    fgSizerRegParams->Add( 
m_RegulIadjTitle, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  263    fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
 
  265    m_iadjTypVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  266    fgSizerRegParams->Add( 
m_iadjTypVal, 0, wxALL|wxEXPAND, 5 );
 
  268    m_iadjMaxVal = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  269    fgSizerRegParams->Add( 
m_iadjMaxVal, 0, wxALL|wxEXPAND, 5 );
 
  271    m_labelUnitsIadj = 
new wxStaticText( 
this, wxID_ANY, 
_(
"uA"), wxDefaultPosition, wxDefaultSize, 0 );
 
  276    fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
 
  278    m_labelTolSumary = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Overall tolerance:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  280    fgSizerRegParams->Add( 
m_labelTolSumary, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
 
  282    m_tolTotalMin = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  283    m_tolTotalMin->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  288    fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 );
 
  290    m_TolTotalMax = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
 
  291    m_TolTotalMax->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  295    m_labelTotalPercent = 
new wxStaticText( 
this, wxID_ANY, 
_(
"%"), wxDefaultPosition, wxDefaultSize, 0 );
 
  300    bSizer9->Add( fgSizerRegParams, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 10 );
 
  302    wxBoxSizer* bSizerResTol;
 
  303    bSizerResTol = 
new wxBoxSizer( wxHORIZONTAL );
 
  305    m_labelResTol = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Resistor tolerance:"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
 
  307    bSizerResTol->Add( 
m_labelResTol, 0, wxALIGN_CENTER|wxALL, 5 );
 
  310    bSizerResTol->Add( 0, 0, 1, 0, 5 );
 
  312    m_resTolVal = 
new wxTextCtrl( 
this, wxID_ANY, 
_(
"1"), wxDefaultPosition, wxSize( 45,-1 ), 0 );
 
  313    bSizerResTol->Add( 
m_resTolVal, 0, wxALIGN_CENTER|wxALL, 5 );
 
  315    m_labelResTolUnit = 
new wxStaticText( 
this, wxID_ANY, 
_(
"%"), wxDefaultPosition, wxDefaultSize, 0 );
 
  320    bSizer9->Add( bSizerResTol, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
 
  322    wxBoxSizer* bSizerComment;
 
  323    bSizerComment = 
new wxBoxSizer( wxHORIZONTAL );
 
  325    m_labelKicadComment = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Power Comment:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  329    m_textPowerComment = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 200,-1 ), wxTE_CENTER|wxTE_READONLY );
 
  330    m_textPowerComment->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
 
  335    bSizerComment->Add( 0, 0, 1, wxEXPAND, 5 );
 
  337    m_btCopyCB = 
new wxButton( 
this, wxID_ANY, 
_(
"Copy to Clipboard"), wxDefaultPosition, wxDefaultSize, 0 );
 
  338    bSizerComment->Add( 
m_btCopyCB, 0, wxALL, 5 );
 
  341    bSizer9->Add( bSizerComment, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 );
 
  344    bSizerRegulRight->Add( bSizer9, 0, 0, 5 );
 
  346    m_RegulMessage = 
new wxStaticText( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  350    wxBoxSizer* bSizerRegulButtonCalcReset;
 
  351    bSizerRegulButtonCalcReset = 
new wxBoxSizer( wxHORIZONTAL );
 
  353    m_buttonCalculate = 
new wxButton( 
this, wxID_ANY, 
_(
"Calculate"), wxDefaultPosition, wxDefaultSize, 0 );
 
  359    bSizerRegulButtonCalcReset->Add( 0, 0, 1, wxEXPAND, 5 );
 
  362    bSizerRegulRight->Add( bSizerRegulButtonCalcReset, 0, wxEXPAND|wxLEFT, 5 );
 
  365    bSizerRegulRight->Add( 0, 0, 1, wxEXPAND, 5 );
 
  367    m_buttonRegulReset = 
new wxButton( 
this, wxID_ANY, 
_(
"Reset to Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
 
  368    bSizerRegulRight->Add( 
m_buttonRegulReset, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxRIGHT, 10 );
 
  371    bSizerColBalancer->Add( bSizerRegulRight, 1, wxEXPAND|wxLEFT, 10 );
 
  374    bSizerMainReg->Add( bSizerColBalancer, 1, wxEXPAND, 5 );
 
  377    this->SetSizer( bSizerMainReg );
 
  379    bSizerMainReg->Fit( 
this );