diff options
41 files changed, 9761 insertions, 3735 deletions
diff --git a/Project/ElectricCalculation.cpp b/Project/ElectricCalculation.cpp index af3173b..c680ef1 100644 --- a/Project/ElectricCalculation.cpp +++ b/Project/ElectricCalculation.cpp @@ -34,6 +34,7 @@ void ElectricCalculation::GetElementsFromList(std::vector<Element*> elementList) m_syncGeneratorList.clear(); m_syncMotorList.clear(); m_transformerList.clear(); + m_harmCurrentList.clear(); // TODO: Bad design? for(auto it = elementList.begin(); it != elementList.end(); it++) { Element* element = *it; @@ -57,6 +58,8 @@ void ElectricCalculation::GetElementsFromList(std::vector<Element*> elementList) m_syncMotorList.push_back(syncMotor); else if(Transformer* transformer = dynamic_cast<Transformer*>(element)) m_transformerList.push_back(transformer); + else if(HarmCurrent* harmCurrent = dynamic_cast<HarmCurrent*>(element)) + m_harmCurrentList.push_back(harmCurrent); } // Set buses numbers @@ -83,9 +86,7 @@ bool ElectricCalculation::GetYBus(std::vector<std::vector<std::complex<double> > yBus.clear(); for(int i = 0; i < (int)m_busList.size(); i++) { std::vector<std::complex<double> > line; - for(int j = 0; j < (int)m_busList.size(); j++) { - line.push_back(std::complex<double>(0.0, 0.0)); - } + for(int j = 0; j < (int)m_busList.size(); j++) { line.push_back(std::complex<double>(0.0, 0.0)); } yBus.push_back(line); } @@ -679,18 +680,12 @@ std::vector<std::complex<double> > ElectricCalculation::GaussianElimination( std::vector<std::vector<std::complex<double> > > triangMatrix; triangMatrix.resize(matrix.size()); - for(unsigned int i = 0; i < matrix.size(); i++) { - triangMatrix[i].resize(matrix.size()); - } + for(unsigned int i = 0; i < matrix.size(); i++) { triangMatrix[i].resize(matrix.size()); } - for(unsigned int i = 0; i < matrix.size(); i++) { - solution.push_back(array[i]); - } + for(unsigned int i = 0; i < matrix.size(); i++) { solution.push_back(array[i]); } for(unsigned int i = 0; i < matrix.size(); i++) { - for(unsigned int j = 0; j < matrix.size(); j++) { - triangMatrix[i][j] = matrix[i][j]; - } + for(unsigned int j = 0; j < matrix.size(); j++) { triangMatrix[i][j] = matrix[i][j]; } } for(unsigned int k = 0; k < matrix.size(); k++) { @@ -705,15 +700,13 @@ std::vector<std::complex<double> > ElectricCalculation::GaussianElimination( } for(unsigned int i = k1; i < matrix.size(); i++) { if(triangMatrix[i][k] != std::complex<double>(0.0, 0.0)) { - for(unsigned int j = k1; j < matrix.size(); j++) { - triangMatrix[i][j] -= triangMatrix[k][j]; - } + for(unsigned int j = k1; j < matrix.size(); j++) { triangMatrix[i][j] -= triangMatrix[k][j]; } solution[i] -= solution[k]; } } } - for(unsigned int i = matrix.size() - 2; i >= 0; i--) { - for(unsigned int j = matrix.size() - 1; j >= i + 1; j--) { + for(int i = static_cast<int>(matrix.size()) - 2; i >= 0; i--) { + for(int j = static_cast<int>(matrix.size()) - 1; j >= i + 1; j--) { solution[i] -= triangMatrix[i][j] * solution[j]; } } @@ -726,14 +719,10 @@ Machines::SyncMachineModel ElectricCalculation::GetMachineModel(SyncGenerator* g auto data = generator->GetElectricalData(); if(data.transTd0 != 0.0) { if(data.transTq0 != 0.0) { - if(data.subTd0 != 0.0 || data.subTq0 != 0.0) { - return Machines::SM_MODEL_5; - } + if(data.subTd0 != 0.0 || data.subTq0 != 0.0) { return Machines::SM_MODEL_5; } return Machines::SM_MODEL_3; } else { - if(data.subTd0 != 0.0 || data.subTq0 != 0.0) { - return Machines::SM_MODEL_4; - } + if(data.subTd0 != 0.0 || data.subTq0 != 0.0) { return Machines::SM_MODEL_4; } return Machines::SM_MODEL_2; } } @@ -749,9 +738,7 @@ std::vector<std::complex<double> > ElectricCalculation::ComplexMatrixTimesVector for(unsigned int i = 0; i < matrix.size(); i++) { solution.push_back(std::complex<double>(0.0, 0.0)); - for(unsigned int j = 0; j < matrix.size(); j++) { - solution[i] += matrix[i][j] * vector[j]; - } + for(unsigned int j = 0; j < matrix.size(); j++) { solution[i] += matrix[i][j] * vector[j]; } } return solution; @@ -782,40 +769,30 @@ void ElectricCalculation::GetLUDecomposition(std::vector<std::vector<std::comple } // Lower matrix main diagonal. - for(int i = 1; i < size; i++) { - matrixL[i][i] = std::complex<double>(1.0, 0.0); - } + for(int i = 1; i < size; i++) { matrixL[i][i] = std::complex<double>(1.0, 0.0); } for(int i = 1; i < size - 1; i++) { // Upper matrix main diagonal. matrixU[i][i] = matrix[i][i]; - for(int k = 0; k < i; k++) { - matrixU[i][i] -= matrixL[i][k] * matrixU[k][i]; - } + for(int k = 0; k < i; k++) { matrixU[i][i] -= matrixL[i][k] * matrixU[k][i]; } // Others elements of upper matrix for(int j = i + 1; j < size; j++) { matrixU[i][j] = matrix[i][j]; - for(int k = 0; k < i; k++) { - matrixU[i][j] -= matrixL[i][k] * matrixU[k][j]; - } + for(int k = 0; k < i; k++) { matrixU[i][j] -= matrixL[i][k] * matrixU[k][j]; } } // Lower matrix elements for(int j = i + 1; j < size; j++) { matrixL[j][i] = matrix[j][i]; - for(int k = 0; k < i; k++) { - matrixL[j][i] -= matrixL[j][k] * matrixU[k][i]; - } + for(int k = 0; k < i; k++) { matrixL[j][i] -= matrixL[j][k] * matrixU[k][i]; } matrixL[j][i] = matrixL[j][i] / matrixU[i][i]; } } // Last element of upper matrix. matrixU[size - 1][size - 1] = matrix[size - 1][size - 1]; - for(int k = 0; k < size - 1; k++) { - matrixU[size - 1][size - 1] -= matrixL[size - 1][k] * matrixU[k][size - 1]; - } + for(int k = 0; k < size - 1; k++) { matrixU[size - 1][size - 1] -= matrixL[size - 1][k] * matrixU[k][size - 1]; } } std::vector<std::complex<double> > ElectricCalculation::LUEvaluate(std::vector<std::vector<std::complex<double> > > u, @@ -831,17 +808,13 @@ std::vector<std::complex<double> > ElectricCalculation::LUEvaluate(std::vector<s // Forward for(int i = 0; i < size; i++) { y[i] = b[i]; - for(int j = 0; j < i; j++) { - y[i] -= l[i][j] * y[j]; - } + for(int j = 0; j < i; j++) { y[i] -= l[i][j] * y[j]; } y[i] /= l[i][i]; } // Backward for(int i = size - 1; i >= 0; i--) { x[i] = y[i]; - for(int j = i + 1; j < size; j++) { - x[i] -= u[i][j] * x[j]; - } + for(int j = i + 1; j < size; j++) { x[i] -= u[i][j] * x[j]; } x[i] /= u[i][i]; } return x; diff --git a/Project/ElectricCalculation.h b/Project/ElectricCalculation.h index 855f02f..0f2049b 100644 --- a/Project/ElectricCalculation.h +++ b/Project/ElectricCalculation.h @@ -32,6 +32,7 @@ #include "SyncGenerator.h" #include "SyncMotor.h" #include "Transformer.h" +#include "HarmCurrent.h" #include "PropertiesData.h" @@ -184,6 +185,11 @@ class ElectricCalculation * @return A list of transformer elements. */ const std::vector<Transformer*> GetTransformerList() const { return m_transformerList; } + /** + * @brief Get the harmonic current source of the system (use GetElementsFromList first). + * @return A list of harmonic current sources elements. + */ + const std::vector<HarmCurrent*> GetHarmCurrentList() const { return m_harmCurrentList; } protected: std::vector<PowerElement*> m_powerElementList; std::vector<Bus*> m_busList; @@ -195,6 +201,7 @@ class ElectricCalculation std::vector<SyncGenerator*> m_syncGeneratorList; std::vector<SyncMotor*> m_syncMotorList; std::vector<Transformer*> m_transformerList; + std::vector<HarmCurrent*> m_harmCurrentList; }; #endif // ELECTRICCALCULATION_H diff --git a/Project/Electromechanical.cpp b/Project/Electromechanical.cpp index 72b2e84..92aa88f 100644 --- a/Project/Electromechanical.cpp +++ b/Project/Electromechanical.cpp @@ -511,7 +511,7 @@ bool Electromechanical::InitializeDynamicElements() SyncGenerator* syncGenerator = *it; auto dataPU = syncGenerator->GetPUElectricalData(m_powerSystemBase); auto data = syncGenerator->GetElectricalData(); - if(syncGenerator->IsOnline()) { + //if(syncGenerator->IsOnline()) { double k = 1.0; // Power base change factor. if(data.useMachineBase) { double oldBase = syncGenerator->GetValueFromUnit(data.nominalPower, data.nominalPowerUnit); @@ -590,7 +590,7 @@ bool Electromechanical::InitializeDynamicElements() data.initialFieldVoltage = ef0 * sd; data.fieldVoltage = data.initialFieldVoltage; data.pm = std::real((data.terminalVoltage * std::conj(ia)) + (std::abs(ia) * std::abs(ia) * ra)); - data.speed = 2.0 * M_PI * m_systemFreq; + syncGenerator->IsOnline() ? data.speed = 2.0 * M_PI * m_systemFreq : data.speed = 2.0 * M_PI * data.ocFrequency; data.delta = delta; data.pe = data.pm; data.electricalPower = std::complex<double>(dataPU.activePower, dataPU.reactivePower); @@ -702,9 +702,9 @@ bool Electromechanical::InitializeDynamicElements() return false; } } - } else { + //} else { // Initialize open circuit machine. - } + //} // Reset plot data data.terminalVoltageVector.clear(); data.terminalVoltageVector.shrink_to_fit(); diff --git a/Project/ElementForm.wxcp b/Project/ElementForm.wxcp index 73f64ef..3c5d096 100644 --- a/Project/ElementForm.wxcp +++ b/Project/ElementForm.wxcp @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 1975, + "m_objCounter": 2020, "m_includeFiles": [], "m_bitmapFunction": "wxC9EE9InitBitmapResources", "m_bitmapsFile": "ElementFormBitmaps.cpp", @@ -10584,6 +10584,299 @@ "m_children": [] }] }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_8" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextOCFreq" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Open-circuit Frequency" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl5_16" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4406, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlOCFreq" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextHz_1" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Hz" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }] + }] }] }, { "m_type": 4449, @@ -39101,5 +39394,1397 @@ }] }] }] + }, { + "m_type": 4421, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_DIALOG_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "HarmCurrentFormBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Switching" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "Project:wxcrafter" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "HarmCurrentForm" + }, { + "type": "string", + "m_label": "File:", + "m_value": "HarmCurrentForm" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl1_1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl2_2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Name" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "300,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlName" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl2_1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl3_1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4485, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxPG_STATIC_LAYOUT", "wxPG_SPLITTER_AUTO_CENTER", "wxPG_BOLD_MODIFIED"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "300,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_pgMgrHarmCurrentProp" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "integer", + "m_label": "Sash Position:", + "m_value": -1 + }, { + "type": "bool", + "m_label": "Set Splitter Left:", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropTitle" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Harmonic Current properties" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "<Default>" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropHarmOrder" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Order" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 1, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "3" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "<Default>" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropHarmCurrent" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Current" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 2, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "0" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "<Default>" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropUnit" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Unit" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 9, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "0" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "A;p.u." + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "<Default>" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4486, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": [], + "m_properties": [{ + "type": "string", + "m_label": "Name:", + "m_value": "m_pgPropHarmAngle" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Angle (degrees)" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "choice", + "m_label": "Property Editor Control", + "m_selection": 0, + "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 2, + "m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"] + }, { + "type": "string", + "m_label": "String Value", + "m_value": "0" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Array Integer Values", + "m_value": "" + }, { + "type": "bool", + "m_label": "Bool Value", + "m_value": true + }, { + "type": "string", + "m_label": "Wildcard", + "m_value": "" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Initial Colour", + "colour": "<Default>" + }], + "m_events": [], + "m_children": [] + }] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl3_3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonInsert" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Add" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnAddButtonClick(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonRemove" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Remove" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnRemoveButtonClick(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl3_2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextHarmCurrentList" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Injected harmonic currents" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4413, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxLC_REPORT"], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "400,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_listCtrlHarmCurrentList" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [] + }] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerBottomButtons" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonOK" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "OK" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnOKButtonClick(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4400, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxALIGN_RIGHT"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_buttonCancel" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Cancel" + }, { + "type": "bool", + "m_label": "Default Button", + "m_value": false + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "choice", + "m_label": "Direction", + "m_selection": 0, + "m_options": ["wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"] + }, { + "type": "string", + "m_label": "Margins:", + "m_value": "2,2" + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_BUTTON_CLICKED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnCancelButtonClick(wxCommandEvent& event)", + "m_description": "Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] }] }
\ No newline at end of file diff --git a/Project/ElementFormBase.cpp b/Project/ElementFormBase.cpp index a42c34d..0d69851 100644 --- a/Project/ElementFormBase.cpp +++ b/Project/ElementFormBase.cpp @@ -6,347 +6,402 @@ #include "ElementFormBase.h" - // Declare the bitmap loading function extern void wxC9EE9InitBitmapResources(); static bool bBitmapLoaded = false; - -BusFormBase::BusFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +BusFormBase::BusFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlName->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlName->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlName->SetMinSize(wxSize(300, -1)); + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextNomVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextNomVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextNomVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextNomVoltage, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlNomVoltage = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlNomVoltage = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlNomVoltage->SetHint(wxT("")); - #endif - - boxSizerLvl5_1->Add(m_textCtrlNomVoltage, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_1->Add(m_textCtrlNomVoltage, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceNomVoltageArr; m_choiceNomVoltageArr.Add(wxT("V")); m_choiceNomVoltageArr.Add(wxT("kV")); - m_choiceNomVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNomVoltageArr, 0); + m_choiceNomVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceNomVoltageArr, 0); m_choiceNomVoltage->SetSelection(1); - - boxSizerLvl5_1->Add(m_choiceNomVoltage, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_1->Add(m_choiceNomVoltage, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_checkBoxCtrlVoltage = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Controlled voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_checkBoxCtrlVoltage = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Controlled voltage"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxCtrlVoltage->SetValue(false); - - boxSizerLvl4_2->Add(m_checkBoxCtrlVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl4_2->Add(m_checkBoxCtrlVoltage, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlCtrlVoltage = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlCtrlVoltage = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlCtrlVoltage->SetHint(wxT("")); - #endif - - boxSizerLvl5_2->Add(m_textCtrlCtrlVoltage, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_2->Add(m_textCtrlCtrlVoltage, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceCtrlVoltageArr; m_choiceCtrlVoltageArr.Add(wxT("p.u.")); m_choiceCtrlVoltageArr.Add(wxT("kV")); - m_choiceCtrlVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceCtrlVoltageArr, 0); + m_choiceCtrlVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceCtrlVoltageArr, 0); m_choiceCtrlVoltage->SetSelection(0); - - boxSizerLvl5_2->Add(m_choiceCtrlVoltage, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - - m_checkBoxSlackBus = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Slack Bus"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + boxSizerLvl5_2->Add(m_choiceCtrlVoltage, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + + m_checkBoxSlackBus = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Slack Bus"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxSlackBus->SetValue(false); - - boxSizerLvl2_1->Add(m_checkBoxSlackBus, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_panelFault = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + boxSizerLvl2_1->Add(m_checkBoxSlackBus, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_panelFault = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelFault, _("Fault"), false); - + wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL); m_panelFault->SetSizer(boxSizerLvl2_2); - - m_checkBoxFault = new wxCheckBox(m_panelFault, wxID_ANY, _("Insert fault in the bus"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); + + m_checkBoxFault = new wxCheckBox(m_panelFault, wxID_ANY, _("Insert fault in the bus"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); m_checkBoxFault->SetValue(false); - - boxSizerLvl2_2->Add(m_checkBoxFault, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl2_2->Add(m_checkBoxFault, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_2->Add(gridSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextFaultType = new wxStaticText(m_panelFault, wxID_ANY, _("Fault type"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_3->Add(m_staticTextFaultType, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextFaultType = new wxStaticText(m_panelFault, wxID_ANY, _("Fault type"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_3->Add(m_staticTextFaultType, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceFaultTypeArr; m_choiceFaultTypeArr.Add(wxT("Three-phase")); m_choiceFaultTypeArr.Add(wxT("Line-to-line")); m_choiceFaultTypeArr.Add(wxT("Double line-to-ground")); m_choiceFaultTypeArr.Add(wxT("Line-to-ground")); - m_choiceFaultType = new wxChoice(m_panelFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), m_choiceFaultTypeArr, 0); + m_choiceFaultType = new wxChoice(m_panelFault, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), m_choiceFaultTypeArr, 0); m_choiceFaultType->SetSelection(0); - - boxSizerLvl4_3->Add(m_choiceFaultType, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl4_3->Add(m_choiceFaultType, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextFaultPlace = new wxStaticText(m_panelFault, wxID_ANY, _("Fault place"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_4->Add(m_staticTextFaultPlace, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextFaultPlace = new wxStaticText(m_panelFault, wxID_ANY, _("Fault place"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_4->Add(m_staticTextFaultPlace, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceFaultPlaceArr; m_choiceFaultPlaceArr.Add(wxT("Line A")); m_choiceFaultPlaceArr.Add(wxT("Line B")); m_choiceFaultPlaceArr.Add(wxT("Line C")); - m_choiceFaultPlace = new wxChoice(m_panelFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), m_choiceFaultPlaceArr, 0); + m_choiceFaultPlace = new wxChoice(m_panelFault, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), m_choiceFaultPlaceArr, 0); m_choiceFaultPlace->SetSelection(0); - - boxSizerLvl4_4->Add(m_choiceFaultPlace, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl4_4->Add(m_choiceFaultPlace, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextFaultResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Fault resistance (R)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_5->Add(m_staticTextFaultResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextFaultResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Fault resistance (R)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_5->Add(m_staticTextFaultResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_5->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlFaultResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlFaultResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlFaultResistance->SetHint(wxT("")); - #endif - - boxSizerLvl5_3->Add(m_textCtrlFaultResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_1 = new wxStaticText(m_panelFault, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl5_3->Add(m_staticTextPU_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_3->Add(m_textCtrlFaultResistance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPU_1 = new wxStaticText(m_panelFault, wxID_ANY, _("p.u."), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl5_3->Add(m_staticTextPU_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Fault reactance (Xl)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_6->Add(m_staticTextReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Fault reactance (Xl)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_6->Add(m_staticTextReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_6->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlFaultReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlFaultReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlFaultReactance->SetHint(wxT("")); - #endif - - boxSizerLvl5_4->Add(m_textCtrlFaultReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_2 = new wxStaticText(m_panelFault, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl5_4->Add(m_staticTextPU_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_panelStability = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); +#endif + + boxSizerLvl5_4->Add(m_textCtrlFaultReactance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPU_2 = new wxStaticText(m_panelFault, wxID_ANY, _("p.u."), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl5_4->Add(m_staticTextPU_2, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_panelStability = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelStability, _("Stability"), false); - + wxBoxSizer* boxSizerLvl2_3 = new wxBoxSizer(wxVERTICAL); m_panelStability->SetSizer(boxSizerLvl2_3); - - m_checkBoxPlotData = new wxCheckBox(m_panelStability, wxID_ANY, _("Plot bus data"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); + + m_checkBoxPlotData = new wxCheckBox(m_panelStability, wxID_ANY, _("Plot bus data"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); m_checkBoxPlotData->SetValue(false); - - boxSizerLvl2_3->Add(m_checkBoxPlotData, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_checkBoxStabFault = new wxCheckBox(m_panelStability, wxID_ANY, _("Insert fault in the bus"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); + + boxSizerLvl2_3->Add(m_checkBoxPlotData, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_checkBoxStabFault = new wxCheckBox(m_panelStability, wxID_ANY, _("Insert fault in the bus"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); m_checkBoxStabFault->SetValue(false); - - boxSizerLvl2_3->Add(m_checkBoxStabFault, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl2_3->Add(m_checkBoxStabFault, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_3 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_3->Add(gridSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_3->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextStabFaultTime = new wxStaticText(m_panelStability, wxID_ANY, _("Time"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl4_7->Add(m_staticTextStabFaultTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextStabFaultTime = new wxStaticText(m_panelStability, wxID_ANY, _("Time"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl4_7->Add(m_staticTextStabFaultTime, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_7->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlStabFaultTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlStabFaultTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlStabFaultTime->SetHint(wxT("")); - #endif - - boxSizerLvl5_5->Add(m_textCtrlStabFaultTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextS_1 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_5->Add(m_staticTextS_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_5->Add(m_textCtrlStabFaultTime, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextS_1 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_5->Add(m_staticTextS_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_3->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextStabFaultLength = new wxStaticText(m_panelStability, wxID_ANY, _("Fault length"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl4_8->Add(m_staticTextStabFaultLength, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextStabFaultLength = new wxStaticText(m_panelStability, wxID_ANY, _("Fault length"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl4_8->Add(m_staticTextStabFaultLength, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_6 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_8->Add(boxSizerLvl5_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlStabFaultLength = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlStabFaultLength = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlStabFaultLength->SetHint(wxT("")); - #endif - - boxSizerLvl5_6->Add(m_textCtrlStabFaultLength, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextS_2 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_6->Add(m_staticTextS_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_6->Add(m_textCtrlStabFaultLength, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextS_2 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_6->Add(m_staticTextS_2, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_9 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_3->Add(boxSizerLvl4_9, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextStabFaultResistance = new wxStaticText(m_panelStability, wxID_ANY, _("Fault resistance (R)"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl4_9->Add(m_staticTextStabFaultResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextStabFaultResistance = + new wxStaticText(m_panelStability, wxID_ANY, _("Fault resistance (R)"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl4_9->Add(m_staticTextStabFaultResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_7 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_9->Add(boxSizerLvl5_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlStabFaultResistance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlStabFaultResistance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlStabFaultResistance->SetHint(wxT("")); - #endif - - boxSizerLvl5_7->Add(m_textCtrlStabFaultResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_3 = new wxStaticText(m_panelStability, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_7->Add(m_staticTextPU_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_7->Add(m_textCtrlStabFaultResistance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPU_3 = new wxStaticText(m_panelStability, wxID_ANY, _("p.u."), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_7->Add(m_staticTextPU_3, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_10 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_3->Add(boxSizerLvl4_10, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextStabFaultReactance = new wxStaticText(m_panelStability, wxID_ANY, _("Fault reactance (Xl)"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl4_10->Add(m_staticTextStabFaultReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextStabFaultReactance = + new wxStaticText(m_panelStability, wxID_ANY, _("Fault reactance (Xl)"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl4_10->Add(m_staticTextStabFaultReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_8 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_10->Add(boxSizerLvl5_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlStabFaultReactance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlStabFaultReactance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlStabFaultReactance->SetHint(wxT("")); - #endif - - boxSizerLvl5_8->Add(m_textCtrlStabFaultReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_4 = new wxStaticText(m_panelStability, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_8->Add(m_staticTextPU_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_8->Add(m_textCtrlStabFaultReactance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPU_4 = new wxStaticText(m_panelStability, wxID_ANY, _("p.u."), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_8->Add(m_staticTextPU_4, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerOkCancel = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerOkCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerOkCancel->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerOkCancel->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + boxSizerLvl1_1->Add(boxSizerOkCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerOkCancel->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerOkCancel->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("BusFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxVERTICAL); } else { @@ -360,396 +415,472 @@ BusFormBase::BusFormBase(wxWindow* parent, wxWindowID id, const wxString& title, } #endif // Connect events - m_choiceNomVoltage->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnNominalVoltageChoice), NULL, this); - m_checkBoxCtrlVoltage->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnControlledVoltageClick), NULL, this); - m_checkBoxFault->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertFaultClick), NULL, this); - m_choiceFaultType->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnFaultTypeChoice), NULL, this); - m_checkBoxStabFault->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertStabFaultClick), NULL, this); + m_choiceNomVoltage->Connect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(BusFormBase::OnNominalVoltageChoice), NULL, this); + m_checkBoxCtrlVoltage->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(BusFormBase::OnControlledVoltageClick), NULL, this); + m_checkBoxFault->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertFaultClick), + NULL, this); + m_choiceFaultType->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnFaultTypeChoice), + NULL, this); + m_checkBoxStabFault->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(BusFormBase::OnInsertStabFaultClick), NULL, this); m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonOKClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonCancelClick), NULL, this); - + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonCancelClick), NULL, + this); } BusFormBase::~BusFormBase() { - m_choiceNomVoltage->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnNominalVoltageChoice), NULL, this); - m_checkBoxCtrlVoltage->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnControlledVoltageClick), NULL, this); - m_checkBoxFault->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertFaultClick), NULL, this); - m_choiceFaultType->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnFaultTypeChoice), NULL, this); - m_checkBoxStabFault->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertStabFaultClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonOKClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonCancelClick), NULL, this); - + m_choiceNomVoltage->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(BusFormBase::OnNominalVoltageChoice), NULL, this); + m_checkBoxCtrlVoltage->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(BusFormBase::OnControlledVoltageClick), NULL, this); + m_checkBoxFault->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(BusFormBase::OnInsertFaultClick), + NULL, this); + m_choiceFaultType->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(BusFormBase::OnFaultTypeChoice), + NULL, this); + m_checkBoxStabFault->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(BusFormBase::OnInsertStabFaultClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonOKClick), NULL, + this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(BusFormBase::OnButtonCancelClick), + NULL, this); } -SyncMachineFormBase::SyncMachineFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +SyncMachineFormBase::SyncMachineFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlName->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlName->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlName->SetMinSize(wxSize(300, -1)); + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_5->Add(m_staticTextNominalPower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_5->Add(m_staticTextNominalPower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_5->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlnominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlnominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlnominalPower->SetHint(wxT("")); - #endif - - boxSizerLvl5_5->Add(m_textCtrlnominalPower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_5->Add(m_textCtrlnominalPower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceNominalPowerArr; m_choiceNominalPowerArr.Add(wxT("VA")); m_choiceNominalPowerArr.Add(wxT("kVA")); m_choiceNominalPowerArr.Add(wxT("MVA")); - m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNominalPowerArr, 0); + m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceNominalPowerArr, 0); m_choiceNominalPower->SetSelection(2); - - boxSizerLvl5_5->Add(m_choiceNominalPower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - - gridSizerLvl3_1->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl5_5->Add(m_choiceNominalPower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + + gridSizerLvl3_1->Add(0, 0, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceActivePowerArr; m_choiceActivePowerArr.Add(wxT("p.u.")); m_choiceActivePowerArr.Add(wxT("W")); m_choiceActivePowerArr.Add(wxT("kW")); m_choiceActivePowerArr.Add(wxT("MW")); - m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceActivePowerArr, 0); + m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceActivePowerArr, 0); m_choiceActivePower->SetSelection(3); - - boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceReactivePowerArr; m_choiceReactivePowerArr.Add(wxT("p.u.")); m_choiceReactivePowerArr.Add(wxT("VAr")); m_choiceReactivePowerArr.Add(wxT("kVAr")); m_choiceReactivePowerArr.Add(wxT("MVAr")); - m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactivePowerArr, 0); + m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceReactivePowerArr, 0); m_choiceReactivePower->SetSelection(3); - - boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_checkBoxMaxReactive = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Max reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_checkBoxMaxReactive = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Max reactive power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxMaxReactive->SetValue(false); - + boxSizerLvl4_3->Add(m_checkBoxMaxReactive, 0, wxALL, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_3->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlMaxRectivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlMaxRectivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlMaxRectivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_3->Add(m_textCtrlMaxRectivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_3->Add(m_textCtrlMaxRectivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceMaxRectivePowerArr; m_choiceMaxRectivePowerArr.Add(wxT("p.u.")); m_choiceMaxRectivePowerArr.Add(wxT("VAr")); m_choiceMaxRectivePowerArr.Add(wxT("kVAr")); m_choiceMaxRectivePowerArr.Add(wxT("MVAr")); - m_choiceMaxRectivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceMaxRectivePowerArr, 0); + m_choiceMaxRectivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceMaxRectivePowerArr, 0); m_choiceMaxRectivePower->SetSelection(3); - - boxSizerLvl5_3->Add(m_choiceMaxRectivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_3->Add(m_choiceMaxRectivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_checkBoxMinReactive = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Min reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_checkBoxMinReactive = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Min reactive power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxMinReactive->SetValue(false); - + boxSizerLvl4_4->Add(m_checkBoxMinReactive, 0, wxALL, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_4->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlMinRectivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlMinRectivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlMinRectivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_4->Add(m_textCtrlMinRectivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_4->Add(m_textCtrlMinRectivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceMinRectivePowerArr; m_choiceMinRectivePowerArr.Add(wxT("p.u.")); m_choiceMinRectivePowerArr.Add(wxT("VAr")); m_choiceMinRectivePowerArr.Add(wxT("kVAr")); m_choiceMinRectivePowerArr.Add(wxT("MVAr")); - m_choiceMinRectivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceMinRectivePowerArr, 0); + m_choiceMinRectivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceMinRectivePowerArr, 0); m_choiceMinRectivePower->SetSelection(3); - - boxSizerLvl5_4->Add(m_choiceMinRectivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - - m_checkBoxUseMachinePower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use machine rated power as base"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + boxSizerLvl5_4->Add(m_choiceMinRectivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + + m_checkBoxUseMachinePower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use machine rated power as base"), + wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxUseMachinePower->SetValue(false); - - boxSizerLvl2_1->Add(m_checkBoxUseMachinePower, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_panelFault = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + boxSizerLvl2_1->Add(m_checkBoxUseMachinePower, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_panelFault = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelFault, _("Fault"), false); - + wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL); m_panelFault->SetSizer(boxSizerLvl2_2); - - wxStaticBoxSizer* staticBoxSizerLvl3_1 = new wxStaticBoxSizer( new wxStaticBox(m_panelFault, wxID_ANY, _("Sequence impedances (p.u.)")), wxVERTICAL); - - boxSizerLvl2_2->Add(staticBoxSizerLvl3_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + wxStaticBoxSizer* staticBoxSizerLvl3_1 = + new wxStaticBoxSizer(new wxStaticBox(m_panelFault, wxID_ANY, _("Sequence impedances (p.u.)")), wxVERTICAL); + + boxSizerLvl2_2->Add(staticBoxSizerLvl3_1, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl4_2 = new wxGridSizer(0, 2, 0, 0); - + staticBoxSizerLvl3_1->Add(gridSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl5_6 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_2->Add(boxSizerLvl5_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPosResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Positive resistance (R1)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl5_6->Add(m_staticTextPosResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlPosResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextPosResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Positive resistance (R1)"), + wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl5_6->Add(m_staticTextPosResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlPosResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPosResistance->SetHint(wxT("")); - #endif - - boxSizerLvl5_6->Add(m_textCtrlPosResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_6->Add(m_textCtrlPosResistance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_7 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_2->Add(boxSizerLvl5_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPosReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Positive reactance (X1)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl5_7->Add(m_staticTextPosReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlPosReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextPosReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Positive reactance (X1)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl5_7->Add(m_staticTextPosReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlPosReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPosReactance->SetHint(wxT("")); - #endif - - boxSizerLvl5_7->Add(m_textCtrlPosReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_7->Add(m_textCtrlPosReactance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_8 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_2->Add(boxSizerLvl5_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextNegResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Negative resistance (R2)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl5_8->Add(m_staticTextNegResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlNegResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextNegResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Negative resistance (R2)"), + wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl5_8->Add(m_staticTextNegResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlNegResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlNegResistance->SetHint(wxT("")); - #endif - - boxSizerLvl5_8->Add(m_textCtrlNegResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_8->Add(m_textCtrlNegResistance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_9 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_2->Add(boxSizerLvl5_9, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextNegReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Negative reactance (X2)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl5_9->Add(m_staticTextNegReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlNegReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextNegReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Negative reactance (X2)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl5_9->Add(m_staticTextNegReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlNegReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlNegReactance->SetHint(wxT("")); - #endif - - boxSizerLvl5_9->Add(m_textCtrlNegReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_9->Add(m_textCtrlNegReactance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_10 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_2->Add(boxSizerLvl5_10, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Zero resistance (R0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl5_10->Add(m_staticTextZeroResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlZeroResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Zero resistance (R0)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl5_10->Add(m_staticTextZeroResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlZeroResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlZeroResistance->SetHint(wxT("")); - #endif - - boxSizerLvl5_10->Add(m_textCtrlZeroResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_10->Add(m_textCtrlZeroResistance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_11 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_2->Add(boxSizerLvl5_11, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Zero reactance (X0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl5_11->Add(m_staticTextZeroReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlZeroReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Zero reactance (X0)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl5_11->Add(m_staticTextZeroReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlZeroReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlZeroReactance->SetHint(wxT("")); - #endif - - boxSizerLvl5_11->Add(m_textCtrlZeroReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_11->Add(m_textCtrlZeroReactance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_3 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_2->Add(gridSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_12 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_3->Add(boxSizerLvl4_12, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextGrdResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Ground resistance (p.u.)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_12->Add(m_staticTextGrdResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlGrdResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextGrdResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Ground resistance (p.u.)"), + wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_12->Add(m_staticTextGrdResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlGrdResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlGrdResistance->SetHint(wxT("")); - #endif - - boxSizerLvl4_12->Add(m_textCtrlGrdResistance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_12->Add(m_textCtrlGrdResistance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_13 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_3->Add(boxSizerLvl4_13, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextGrdReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Ground reactance (p.u.)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_13->Add(m_staticTextGrdReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlGrdReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextGrdReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Ground reactance (p.u.)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_13->Add(m_staticTextGrdReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlGrdReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlGrdReactance->SetHint(wxT("")); - #endif - - boxSizerLvl4_13->Add(m_textCtrlGrdReactance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_checkBoxGroundNeutral = new wxCheckBox(m_panelFault, wxID_ANY, _("Grounded neutral"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); +#endif + + boxSizerLvl4_13->Add(m_textCtrlGrdReactance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_checkBoxGroundNeutral = new wxCheckBox(m_panelFault, wxID_ANY, _("Grounded neutral"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); m_checkBoxGroundNeutral->SetValue(true); - + boxSizerLvl2_2->Add(m_checkBoxGroundNeutral, 0, wxALL, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonStab = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonStab, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5)); - - boxSizerBottomButtons->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonStab = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonStab, 0, wxALL | wxALIGN_LEFT, WXC_FROM_DIP(5)); + + boxSizerBottomButtons->Add(0, 0, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("SyncMachineFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -763,488 +894,561 @@ SyncMachineFormBase::SyncMachineFormBase(wxWindow* parent, wxWindowID id, const } #endif // Connect events - m_checkBoxMaxReactive->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCheckMaxReactive), NULL, this); - m_checkBoxMinReactive->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCheckMinReactive), NULL, this); - m_buttonStab->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCancelButtonClick), NULL, this); - + m_checkBoxMaxReactive->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(SyncMachineFormBase::OnCheckMaxReactive), NULL, this); + m_checkBoxMinReactive->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(SyncMachineFormBase::OnCheckMinReactive), NULL, this); + m_buttonStab->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SyncMachineFormBase::OnStabilityButtonClick), NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnOKButtonClick), NULL, + this); + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SyncMachineFormBase::OnCancelButtonClick), NULL, this); } SyncMachineFormBase::~SyncMachineFormBase() { - m_checkBoxMaxReactive->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCheckMaxReactive), NULL, this); - m_checkBoxMinReactive->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCheckMinReactive), NULL, this); - m_buttonStab->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnCancelButtonClick), NULL, this); - + m_checkBoxMaxReactive->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(SyncMachineFormBase::OnCheckMaxReactive), NULL, this); + m_checkBoxMinReactive->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(SyncMachineFormBase::OnCheckMinReactive), NULL, this); + m_buttonStab->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SyncMachineFormBase::OnStabilityButtonClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SyncMachineFormBase::OnOKButtonClick), + NULL, this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SyncMachineFormBase::OnCancelButtonClick), NULL, this); } -GeneratorStabFormBase::GeneratorStabFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +GeneratorStabFormBase::GeneratorStabFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); - - boxSizerLvl1_1->Add(boxSizerLvl2_1, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_checkBoxPlotSyncMachine = new wxCheckBox(this, wxID_ANY, _("Plot synchronous machine data"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); + + boxSizerLvl1_1->Add(boxSizerLvl2_1, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_checkBoxPlotSyncMachine = new wxCheckBox(this, wxID_ANY, _("Plot synchronous machine data"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); m_checkBoxPlotSyncMachine->SetValue(false); - - boxSizerLvl2_1->Add(m_checkBoxPlotSyncMachine, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl2_1->Add(m_checkBoxPlotSyncMachine, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextInertia = new wxStaticText(this, wxID_ANY, _("Inertia (H)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextInertia, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextInertia = + new wxStaticText(this, wxID_ANY, _("Inertia (H)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextInertia, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlInertia = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlInertia = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlInertia->SetHint(wxT("")); - #endif - - boxSizerLvl5_1->Add(m_textCtrlInertia, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextS_1 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_1->Add(m_staticTextS_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_1->Add(m_textCtrlInertia, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextS_1 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_1->Add(m_staticTextS_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextDamping = new wxStaticText(this, wxID_ANY, _("Damping factor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextDamping, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextDamping = + new wxStaticText(this, wxID_ANY, _("Damping factor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextDamping, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlDamping = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlDamping = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlDamping->SetHint(wxT("")); - #endif - - boxSizerLvl5_2->Add(m_textCtrlDamping, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_1 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_2->Add(m_staticTextPU_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_2->Add(m_textCtrlDamping, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_1 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_2->Add(m_staticTextPU_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_checkBoxUseAVR = new wxCheckBox(this, wxID_ANY, _("Use AVR"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); + + m_checkBoxUseAVR = + new wxCheckBox(this, wxID_ANY, _("Use AVR"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); m_checkBoxUseAVR->SetValue(false); - - boxSizerLvl4_3->Add(m_checkBoxUseAVR, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_buttonEditAVR = new wxButton(this, wxID_ANY, _("Edit AVR"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl4_3->Add(m_buttonEditAVR, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl4_3->Add(m_checkBoxUseAVR, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_buttonEditAVR = + new wxButton(this, wxID_ANY, _("Edit AVR"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl4_3->Add(m_buttonEditAVR, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_checkBoxUseSG = new wxCheckBox(this, wxID_ANY, _("Use speed governor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); + + m_checkBoxUseSG = + new wxCheckBox(this, wxID_ANY, _("Use speed governor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); m_checkBoxUseSG->SetValue(false); - - boxSizerLvl4_4->Add(m_checkBoxUseSG, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_buttonEditSG = new wxButton(this, wxID_ANY, _("Edit speed governor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl4_4->Add(m_buttonEditSG, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticLine_1 = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxLI_HORIZONTAL); - - boxSizerLvl2_1->Add(m_staticLine_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl4_4->Add(m_checkBoxUseSG, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_buttonEditSG = + new wxButton(this, wxID_ANY, _("Edit speed governor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl4_4->Add(m_buttonEditSG, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticLine_1 = + new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxLI_HORIZONTAL); + + boxSizerLvl2_1->Add(m_staticLine_1, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_2, 1, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextRa = new wxStaticText(this, wxID_ANY, _("Armature resistance (Ra)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl4_5->Add(m_staticTextRa, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextRa = new wxStaticText(this, wxID_ANY, _("Armature resistance (Ra)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl4_5->Add(m_staticTextRa, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_5->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlRa = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlRa = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlRa->SetHint(wxT("")); - #endif - - boxSizerLvl5_3->Add(m_textCtrlRa, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_2 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_3->Add(m_staticTextPU_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_3->Add(m_textCtrlRa, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_2 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_3->Add(m_staticTextPU_2, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextXp = new wxStaticText(this, wxID_ANY, _("Potier reactance (Xp)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl4_6->Add(m_staticTextXp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextXp = new wxStaticText(this, wxID_ANY, _("Potier reactance (Xp)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl4_6->Add(m_staticTextXp, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_14 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_6->Add(boxSizerLvl5_14, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlXp = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlXp = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlXp->SetHint(wxT("")); - #endif - - boxSizerLvl5_14->Add(m_textCtrlXp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_9 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_14->Add(m_staticTextPU_9, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_14->Add(m_textCtrlXp, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_9 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_14->Add(m_staticTextPU_9, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSat = new wxStaticText(this, wxID_ANY, _("Saturation factor"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl4_7->Add(m_staticTextSat, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextSat = new wxStaticText(this, wxID_ANY, _("Saturation factor"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl4_7->Add(m_staticTextSat, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_15 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_7->Add(boxSizerLvl5_15, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSat = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSat = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSat->SetHint(wxT("")); - #endif - - boxSizerLvl5_15->Add(m_textCtrlSat, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_10 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_15->Add(m_staticTextPU_10, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerSyncronous = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, _("Syncronous")), wxVERTICAL); - - boxSizerLvl2_1->Add(staticBoxSizerSyncronous, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_15->Add(m_textCtrlSat, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_10 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_15->Add(m_staticTextPU_10, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxVERTICAL); + + gridSizerLvl3_2->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5)); + + m_staticTextOCFreq = new wxStaticText(this, wxID_ANY, _("Open-circuit Frequency"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl4_8->Add(m_staticTextOCFreq, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + wxBoxSizer* boxSizerLvl5_16 = new wxBoxSizer(wxHORIZONTAL); + + boxSizerLvl4_8->Add(boxSizerLvl5_16, 0, wxEXPAND, WXC_FROM_DIP(5)); + + m_textCtrlOCFreq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 + m_textCtrlOCFreq->SetHint(wxT("")); +#endif + + boxSizerLvl5_16->Add(m_textCtrlOCFreq, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextHz_1 = + new wxStaticText(this, wxID_ANY, _("Hz"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_16->Add(m_staticTextHz_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + wxStaticBoxSizer* staticBoxSizerSyncronous = + new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Syncronous")), wxVERTICAL); + + boxSizerLvl2_1->Add(staticBoxSizerSyncronous, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl4_3 = new wxGridSizer(0, 2, 0, 0); - + staticBoxSizerSyncronous->Add(gridSizerLvl4_3, 1, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_3->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSyncXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (Xd)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_4->Add(m_staticTextSyncXd, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextSyncXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (Xd)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_4->Add(m_staticTextSyncXd, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_4->Add(boxSizerLvl6_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSyncXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSyncXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSyncXd->SetHint(wxT("")); - #endif - - boxSizerLvl6_1->Add(m_textCtrlSyncXd, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_3 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_1->Add(m_staticTextPU_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_1->Add(m_textCtrlSyncXd, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_3 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_1->Add(m_staticTextPU_3, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_3->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSyncXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (Xq)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_5->Add(m_staticTextSyncXq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextSyncXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (Xq)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_5->Add(m_staticTextSyncXq, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_5->Add(boxSizerLvl6_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSyncXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSyncXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSyncXq->SetHint(wxT("")); - #endif - - boxSizerLvl6_2->Add(m_textCtrlSyncXq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_4 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_2->Add(m_staticTextPU_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerTransient = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, _("Transient")), wxVERTICAL); - - boxSizerLvl2_1->Add(staticBoxSizerTransient, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_2->Add(m_textCtrlSyncXq, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_4 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_2->Add(m_staticTextPU_4, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + wxStaticBoxSizer* staticBoxSizerTransient = + new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Transient")), wxVERTICAL); + + boxSizerLvl2_1->Add(staticBoxSizerTransient, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl4_4 = new wxGridSizer(0, 2, 0, 0); - + staticBoxSizerTransient->Add(gridSizerLvl4_4, 1, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl5_6 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_4->Add(boxSizerLvl5_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTranXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (X'd)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_6->Add(m_staticTextTranXd, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextTranXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (X'd)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_6->Add(m_staticTextTranXd, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_3 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_6->Add(boxSizerLvl6_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlTranXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlTranXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlTranXd->SetHint(wxT("")); - #endif - - boxSizerLvl6_3->Add(m_textCtrlTranXd, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_5 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_3->Add(m_staticTextPU_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_3->Add(m_textCtrlTranXd, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_5 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_3->Add(m_staticTextPU_5, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_7 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_4->Add(boxSizerLvl5_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTranXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (X'q)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_7->Add(m_staticTextTranXq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextTranXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (X'q)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_7->Add(m_staticTextTranXq, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_4 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_7->Add(boxSizerLvl6_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlTranXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlTranXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlTranXq->SetHint(wxT("")); - #endif - - boxSizerLvl6_4->Add(m_textCtrlTranXq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_6 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_4->Add(m_staticTextPU_6, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_4->Add(m_textCtrlTranXq, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_6 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_4->Add(m_staticTextPU_6, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_8 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_4->Add(boxSizerLvl5_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTranTd0 = new wxStaticText(this, wxID_ANY, _("Direct-axis time constant (T'd0)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_8->Add(m_staticTextTranTd0, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextTranTd0 = new wxStaticText(this, wxID_ANY, _("Direct-axis time constant (T'd0)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_8->Add(m_staticTextTranTd0, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_5 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_8->Add(boxSizerLvl6_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlTranTd0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlTranTd0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlTranTd0->SetHint(wxT("")); - #endif - - boxSizerLvl6_5->Add(m_textCtrlTranTd0, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextS_2 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_5->Add(m_staticTextS_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_5->Add(m_textCtrlTranTd0, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextS_2 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_5->Add(m_staticTextS_2, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_9 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_4->Add(boxSizerLvl5_9, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTranTq0 = new wxStaticText(this, wxID_ANY, _("Quadrature-axis time constant (T'q0)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_9->Add(m_staticTextTranTq0, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextTranTq0 = new wxStaticText(this, wxID_ANY, _("Quadrature-axis time constant (T'q0)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_9->Add(m_staticTextTranTq0, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_6 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_9->Add(boxSizerLvl6_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlTranTq0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlTranTq0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlTranTq0->SetHint(wxT("")); - #endif - - boxSizerLvl6_6->Add(m_textCtrlTranTq0, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextS_3 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_6->Add(m_staticTextS_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerSubtransient = new wxStaticBoxSizer( new wxStaticBox(this, wxID_ANY, _("Sub-transient")), wxVERTICAL); - - boxSizerLvl2_1->Add(staticBoxSizerSubtransient, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_6->Add(m_textCtrlTranTq0, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextS_3 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_6->Add(m_staticTextS_3, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + wxStaticBoxSizer* staticBoxSizerSubtransient = + new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Sub-transient")), wxVERTICAL); + + boxSizerLvl2_1->Add(staticBoxSizerSubtransient, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl4_5 = new wxGridSizer(0, 2, 0, 0); - + staticBoxSizerSubtransient->Add(gridSizerLvl4_5, 1, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl5_10 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_5->Add(boxSizerLvl5_10, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSubXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (X''d)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_10->Add(m_staticTextSubXd, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextSubXd = new wxStaticText(this, wxID_ANY, _("Direct-axis reactance (X''d)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_10->Add(m_staticTextSubXd, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_7 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_10->Add(boxSizerLvl6_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSubXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSubXd = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSubXd->SetHint(wxT("")); - #endif - - boxSizerLvl6_7->Add(m_textCtrlSubXd, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_7 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_7->Add(m_staticTextPU_7, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_7->Add(m_textCtrlSubXd, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_7 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_7->Add(m_staticTextPU_7, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_11 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_5->Add(boxSizerLvl5_11, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSubXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (X''q)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_11->Add(m_staticTextSubXq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextSubXq = new wxStaticText(this, wxID_ANY, _("Quadrature-axis reactance (X''q)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_11->Add(m_staticTextSubXq, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_8 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_11->Add(boxSizerLvl6_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSubXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSubXq = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSubXq->SetHint(wxT("")); - #endif - - boxSizerLvl6_8->Add(m_textCtrlSubXq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPU_8 = new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_8->Add(m_staticTextPU_8, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_8->Add(m_textCtrlSubXq, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPU_8 = + new wxStaticText(this, wxID_ANY, _("p.u."), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_8->Add(m_staticTextPU_8, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_12 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_5->Add(boxSizerLvl5_12, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSubTd0 = new wxStaticText(this, wxID_ANY, _("Direct-axis time constant (T''d0)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_12->Add(m_staticTextSubTd0, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextSubTd0 = new wxStaticText(this, wxID_ANY, _("Direct-axis time constant (T''d0)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_12->Add(m_staticTextSubTd0, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_9 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_12->Add(boxSizerLvl6_9, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSubTd0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSubTd0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSubTd0->SetHint(wxT("")); - #endif - - boxSizerLvl6_9->Add(m_textCtrlSubTd0, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextS_4 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_9->Add(m_staticTextS_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_9->Add(m_textCtrlSubTd0, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextS_4 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_9->Add(m_staticTextS_4, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_13 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl4_5->Add(boxSizerLvl5_13, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSubTq0 = new wxStaticText(this, wxID_ANY, _("Quadrature-axis time constant (T''q0)"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl5_13->Add(m_staticTextSubTq0, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextSubTq0 = new wxStaticText(this, wxID_ANY, _("Quadrature-axis time constant (T''q0)"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl5_13->Add(m_staticTextSubTq0, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_10 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_13->Add(boxSizerLvl6_10, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSubTq0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSubTq0 = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSubTq0->SetHint(wxT("")); - #endif - - boxSizerLvl6_10->Add(m_textCtrlSubTq0, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextS_5 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl6_10->Add(m_staticTextS_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_10->Add(m_textCtrlSubTq0, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextS_5 = new wxStaticText(this, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl6_10->Add(m_staticTextS_5, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerVDivider = new wxBoxSizer(wxVERTICAL); - - boxSizerLvl2_1->Add(boxSizerVDivider, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl2_1->Add(boxSizerVDivider, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerSection_2 = new wxBoxSizer(wxVERTICAL); - - boxSizerVDivider->Add(boxSizerSection_2, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerVDivider->Add(boxSizerSection_2, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerSection_1 = new wxBoxSizer(wxVERTICAL); - - boxSizerVDivider->Add(boxSizerSection_1, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerVDivider->Add(boxSizerSection_1, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonSwitching = new wxButton(this, wxID_ANY, _("Switching"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonSwitching, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5)); - - boxSizerBottomButtons->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonSwitching = + new wxButton(this, wxID_ANY, _("Switching"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonSwitching, 0, wxALL | wxALIGN_LEFT, WXC_FROM_DIP(5)); + + boxSizerBottomButtons->Add(0, 0, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + SetName(wxT("GeneratorStabFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -1258,314 +1462,373 @@ GeneratorStabFormBase::GeneratorStabFormBase(wxWindow* parent, wxWindowID id, co } #endif // Connect events - m_checkBoxUseAVR->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseAVRClick), NULL, this); - m_buttonEditAVR->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnEditAVRButtonClick), NULL, this); - m_checkBoxUseSG->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseSGClick), NULL, this); - m_buttonEditSG->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnSpeedGovernorButtonClick), NULL, this); - m_buttonSwitching->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnSwitchingButtonClick), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnCancelButtonClick), NULL, this); - + m_checkBoxUseAVR->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseAVRClick), + NULL, this); + m_buttonEditAVR->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::OnEditAVRButtonClick), NULL, this); + m_checkBoxUseSG->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseSGClick), + NULL, this); + m_buttonEditSG->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::OnSpeedGovernorButtonClick), NULL, this); + m_buttonSwitching->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::OnSwitchingButtonClick), NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnOKButtonClick), + NULL, this); + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::OnCancelButtonClick), NULL, this); } GeneratorStabFormBase::~GeneratorStabFormBase() { - m_checkBoxUseAVR->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseAVRClick), NULL, this); - m_buttonEditAVR->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnEditAVRButtonClick), NULL, this); - m_checkBoxUseSG->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::UseSGClick), NULL, this); - m_buttonEditSG->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnSpeedGovernorButtonClick), NULL, this); - m_buttonSwitching->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnSwitchingButtonClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnCancelButtonClick), NULL, this); - + m_checkBoxUseAVR->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::UseAVRClick), NULL, this); + m_buttonEditAVR->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::OnEditAVRButtonClick), NULL, this); + m_checkBoxUseSG->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::UseSGClick), NULL, this); + m_buttonEditSG->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::OnSpeedGovernorButtonClick), NULL, this); + m_buttonSwitching->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::OnSwitchingButtonClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneratorStabFormBase::OnOKButtonClick), + NULL, this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneratorStabFormBase::OnCancelButtonClick), NULL, this); } -LineFormBase::LineFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +LineFormBase::LineFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlName->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlName->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlName->SetMinSize(wxSize(300, -1)); + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_9 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_9, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextNominalVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_9->Add(m_staticTextNominalVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextNominalVoltageValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("138 kV"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_staticTextNominalVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_9->Add(m_staticTextNominalVoltage, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextNominalVoltageValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("138 kV"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); wxFont m_staticTextNominalVoltageValueFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); m_staticTextNominalVoltageValueFont.SetWeight(wxFONTWEIGHT_BOLD); m_staticTextNominalVoltageValue->SetFont(m_staticTextNominalVoltageValueFont); - - boxSizerLvl4_9->Add(m_staticTextNominalVoltageValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl4_9->Add(m_staticTextNominalVoltageValue, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_8->Add(m_staticTextNominalPower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_8->Add(m_staticTextNominalPower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_8->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlNominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlNominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlNominalPower->SetHint(wxT("")); - #endif - - boxSizerLvl5_5->Add(m_textCtrlNominalPower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_5->Add(m_textCtrlNominalPower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceNominalPowerArr; m_choiceNominalPowerArr.Add(wxT("VA")); m_choiceNominalPowerArr.Add(wxT("kVA")); m_choiceNominalPowerArr.Add(wxT("MVA")); - m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNominalPowerArr, 0); + m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceNominalPowerArr, 0); m_choiceNominalPower->SetSelection(2); - - boxSizerLvl5_5->Add(m_choiceNominalPower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_5->Add(m_choiceNominalPower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextResistance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Resistance (R)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextResistance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Resistance (R)"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlResistance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlResistance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlResistance->SetHint(wxT("")); - #endif - - boxSizerLvl5_1->Add(m_textCtrlResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_1->Add(m_textCtrlResistance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceResistanceArr; m_choiceResistanceArr.Add(wxT("p.u.")); m_choiceResistanceArr.Add(wxT("Ohm")); m_choiceResistanceArr.Add(wxT("Ohm/km")); - m_choiceResistance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceResistanceArr, 0); + m_choiceResistance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceResistanceArr, 0); m_choiceResistance->SetSelection(0); - - boxSizerLvl5_1->Add(m_choiceResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_1->Add(m_choiceResistance, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Indutive reactance (XL)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Indutive reactance (XL)"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactance->SetHint(wxT("")); - #endif - - boxSizerLvl5_2->Add(m_textCtrlReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_2->Add(m_textCtrlReactance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceReactanceArr; m_choiceReactanceArr.Add(wxT("p.u.")); m_choiceReactanceArr.Add(wxT("Ohm")); m_choiceReactanceArr.Add(wxT("Ohm/km")); - m_choiceReactance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactanceArr, 0); + m_choiceReactance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceReactanceArr, 0); m_choiceReactance->SetSelection(0); - - boxSizerLvl5_2->Add(m_choiceReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_2->Add(m_choiceReactance, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSusceptance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Capacitive susceptance (B)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_3->Add(m_staticTextSusceptance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextSusceptance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Capacitive susceptance (B)"), + wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_3->Add(m_staticTextSusceptance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_3->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSusceptance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSusceptance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSusceptance->SetHint(wxT("")); - #endif - - boxSizerLvl5_3->Add(m_textCtrlSusceptance, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_3->Add(m_textCtrlSusceptance, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceSusceptanceArr; m_choiceSusceptanceArr.Add(wxT("p.u.")); m_choiceSusceptanceArr.Add(wxT("S")); m_choiceSusceptanceArr.Add(wxT("S/km")); - m_choiceSusceptance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceSusceptanceArr, 0); + m_choiceSusceptance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceSusceptanceArr, 0); m_choiceSusceptance->SetSelection(0); - - boxSizerLvl5_3->Add(m_choiceSusceptance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_3->Add(m_choiceSusceptance, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextLineSize = new wxStaticText(m_panelGeneral, wxID_ANY, _("Line size"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_4->Add(m_staticTextLineSize, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextLineSize = new wxStaticText(m_panelGeneral, wxID_ANY, _("Line size"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_4->Add(m_staticTextLineSize, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_4->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlLineSize = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlLineSize = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlLineSize->SetHint(wxT("")); - #endif - - boxSizerLvl5_4->Add(m_textCtrlLineSize, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextKM = new wxStaticText(m_panelGeneral, wxID_ANY, _("km"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - +#endif + + boxSizerLvl5_4->Add(m_textCtrlLineSize, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextKM = new wxStaticText(m_panelGeneral, wxID_ANY, _("km"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + boxSizerLvl5_4->Add(m_staticTextKM, 0, wxALL, WXC_FROM_DIP(5)); - - m_checkUseLinePower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use line rated power as base"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_checkUseLinePower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use line rated power as base"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkUseLinePower->SetValue(false); - + boxSizerLvl2_1->Add(m_checkUseLinePower, 0, wxALL, WXC_FROM_DIP(5)); - - m_panelFault = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelFault = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelFault, _("Fault"), false); - + wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL); m_panelFault->SetSizer(boxSizerLvl2_2); - - wxStaticBoxSizer* staticBoxSizerZeroImpSeq = new wxStaticBoxSizer( new wxStaticBox(m_panelFault, wxID_ANY, _("Zero-sequence impedances (p.u.)")), wxVERTICAL); - - boxSizerLvl2_2->Add(staticBoxSizerZeroImpSeq, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + wxStaticBoxSizer* staticBoxSizerZeroImpSeq = + new wxStaticBoxSizer(new wxStaticBox(m_panelFault, wxID_ANY, _("Zero-sequence impedances (p.u.)")), wxVERTICAL); + + boxSizerLvl2_2->Add(staticBoxSizerZeroImpSeq, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0); - + staticBoxSizerZeroImpSeq->Add(gridSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Resistance (R0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_5->Add(m_staticTextZeroResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlZeroResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Resistance (R0)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_5->Add(m_staticTextZeroResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlZeroResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlZeroResistance->SetHint(wxT("")); - #endif - - boxSizerLvl4_5->Add(m_textCtrlZeroResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_5->Add(m_textCtrlZeroResistance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Indutive reactance (X0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_6->Add(m_staticTextZeroReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlZeroReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Indutive reactance (X0)"), + wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_6->Add(m_staticTextZeroReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlZeroReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlZeroReactance->SetHint(wxT("")); - #endif - - boxSizerLvl4_6->Add(m_textCtrlZeroReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_6->Add(m_textCtrlZeroReactance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextZeroSusceptance = new wxStaticText(m_panelFault, wxID_ANY, _("Capacitive susceptance (B0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_7->Add(m_staticTextZeroSusceptance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlZeroSusceptance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextZeroSusceptance = new wxStaticText(m_panelFault, wxID_ANY, _("Capacitive susceptance (B0)"), + wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_7->Add(m_staticTextZeroSusceptance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlZeroSusceptance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlZeroSusceptance->SetHint(wxT("")); - #endif - - boxSizerLvl4_7->Add(m_textCtrlZeroSusceptance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_7->Add(m_textCtrlZeroSusceptance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonStability = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonStability, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5)); - - boxSizerBottomButtons->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonStability = + new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonStability, 0, wxALL | wxALIGN_LEFT, WXC_FROM_DIP(5)); + + boxSizerBottomButtons->Add(0, 0, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("LineFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -1579,187 +1842,222 @@ LineFormBase::LineFormBase(wxWindow* parent, wxWindowID id, const wxString& titl } #endif // Connect events - m_buttonStability->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnStabilityButtonClick), NULL, this); + m_buttonStability->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(LineFormBase::OnStabilityButtonClick), NULL, this); m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnCancelButtonClick), NULL, this); - + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnCancelButtonClick), + NULL, this); } LineFormBase::~LineFormBase() { - m_buttonStability->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnCancelButtonClick), NULL, this); - + m_buttonStability->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(LineFormBase::OnStabilityButtonClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnOKButtonClick), NULL, + this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LineFormBase::OnCancelButtonClick), + NULL, this); } -TransformerFormBase::TransformerFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +TransformerFormBase::TransformerFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlName->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlName->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlName->SetMinSize(wxSize(300, -1)); + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextNominalVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextNominalVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextNominalVoltageValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("138 kV / 138 kV"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_staticTextNominalVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated voltage"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextNominalVoltage, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextNominalVoltageValue = + new wxStaticText(m_panelGeneral, wxID_ANY, _("138 kV / 138 kV"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); wxFont m_staticTextNominalVoltageValueFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); m_staticTextNominalVoltageValueFont.SetWeight(wxFONTWEIGHT_BOLD); m_staticTextNominalVoltageValue->SetFont(m_staticTextNominalVoltageValueFont); - - boxSizerLvl4_1->Add(m_staticTextNominalVoltageValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl4_1->Add(m_staticTextNominalVoltageValue, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextBaseVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Base voltage"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_5->Add(m_staticTextBaseVoltage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextBaseVoltage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Base voltage"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_5->Add(m_staticTextBaseVoltage, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceBaseVoltageArr; m_choiceBaseVoltageArr.Add(wxT("138 kV")); m_choiceBaseVoltageArr.Add(wxT("138 kV")); - m_choiceBaseVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceBaseVoltageArr, 0); + m_choiceBaseVoltage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceBaseVoltageArr, 0); m_choiceBaseVoltage->SetSelection(0); - - boxSizerLvl4_5->Add(m_choiceBaseVoltage, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl4_5->Add(m_choiceBaseVoltage, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextNominalPower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextNominalPower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Rated power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextNominalPower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_2->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlNominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlNominalPower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlNominalPower->SetHint(wxT("")); - #endif - - boxSizerLvl5_1->Add(m_textCtrlNominalPower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_1->Add(m_textCtrlNominalPower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceNominalPowerArr; m_choiceNominalPowerArr.Add(wxT("VA")); m_choiceNominalPowerArr.Add(wxT("kVA")); m_choiceNominalPowerArr.Add(wxT("MVA")); - m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNominalPowerArr, 0); + m_choiceNominalPower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceNominalPowerArr, 0); m_choiceNominalPower->SetSelection(2); - - boxSizerLvl5_1->Add(m_choiceNominalPower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_1->Add(m_choiceNominalPower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + gridSizerLvl3_1->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextResistance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Resistance (R)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_3->Add(m_staticTextResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextResistance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Resistance (R)"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_3->Add(m_staticTextResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_3->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlResistance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlResistance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlResistance->SetHint(wxT("")); - #endif - - boxSizerLvl5_2->Add(m_textCtrlResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_2->Add(m_textCtrlResistance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceResistanceArr; m_choiceResistanceArr.Add(wxT("p.u.")); m_choiceResistanceArr.Add(wxT("Ohm")); - m_choiceResistance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceResistanceArr, 0); + m_choiceResistance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceResistanceArr, 0); m_choiceResistance->SetSelection(0); - - boxSizerLvl5_2->Add(m_choiceResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_2->Add(m_choiceResistance, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Indutive reactance (XL)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_4->Add(m_staticTextReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactance = new wxStaticText(m_panelGeneral, wxID_ANY, _("Indutive reactance (XL)"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_4->Add(m_staticTextReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_4->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactance = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactance->SetHint(wxT("")); - #endif - - boxSizerLvl5_3->Add(m_textCtrlReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_3->Add(m_textCtrlReactance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceReactanceArr; m_choiceReactanceArr.Add(wxT("p.u.")); m_choiceReactanceArr.Add(wxT("Ohm")); - m_choiceReactance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactanceArr, 0); + m_choiceReactance = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceReactanceArr, 0); m_choiceReactance->SetSelection(0); - - boxSizerLvl5_3->Add(m_choiceReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - - m_staticLine_1 = new wxStaticLine(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), wxLI_HORIZONTAL); - - boxSizerLvl2_1->Add(m_staticLine_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl5_3->Add(m_choiceReactance, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + + m_staticLine_1 = new wxStaticLine(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), wxLI_HORIZONTAL); + + boxSizerLvl2_1->Add(m_staticLine_1, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL); - + boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextConnection = new wxStaticText(m_panelGeneral, wxID_ANY, _("Connection"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl3_1->Add(m_staticTextConnection, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextConnection = new wxStaticText(m_panelGeneral, wxID_ANY, _("Connection"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl3_1->Add(m_staticTextConnection, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceConnectionArr; m_choiceConnectionArr.Add(wxT("Grounded Wye - Grounded Wye")); m_choiceConnectionArr.Add(wxT("Wye - Grounded Wye")); @@ -1770,202 +2068,236 @@ TransformerFormBase::TransformerFormBase(wxWindow* parent, wxWindowID id, const m_choiceConnectionArr.Add(wxT("Grounded Wye - Delta")); m_choiceConnectionArr.Add(wxT("Wye - Delta")); m_choiceConnectionArr.Add(wxT("Delta - Delta")); - m_choiceConnection = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceConnectionArr, 0); + m_choiceConnection = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceConnectionArr, 0); m_choiceConnection->SetSelection(0); - - boxSizerLvl3_1->Add(m_choiceConnection, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl3_1->Add(m_choiceConnection, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTurnsRatio = new wxStaticText(m_panelGeneral, wxID_ANY, _("Turns ratio"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_6->Add(m_staticTextTurnsRatio, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlTurnRatio = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextTurnsRatio = new wxStaticText(m_panelGeneral, wxID_ANY, _("Turns ratio"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_6->Add(m_staticTextTurnsRatio, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlTurnRatio = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlTurnRatio->SetHint(wxT("")); - #endif - - boxSizerLvl4_6->Add(m_textCtrlTurnRatio, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_6->Add(m_textCtrlTurnRatio, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_2->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPhaseShift = new wxStaticText(m_panelGeneral, wxID_ANY, _("Phase shift"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_7->Add(m_staticTextPhaseShift, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextPhaseShift = new wxStaticText(m_panelGeneral, wxID_ANY, _("Phase shift"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_7->Add(m_staticTextPhaseShift, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_7->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlPhaseShift = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlPhaseShift = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPhaseShift->SetHint(wxT("")); - #endif - - boxSizerLvl5_4->Add(m_textCtrlPhaseShift, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextDeg = new wxStaticText(m_panelGeneral, wxID_ANY, _("degrees"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - +#endif + + boxSizerLvl5_4->Add(m_textCtrlPhaseShift, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextDeg = new wxStaticText(m_panelGeneral, wxID_ANY, _("degrees"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + boxSizerLvl5_4->Add(m_staticTextDeg, 0, wxALL, WXC_FROM_DIP(5)); - - m_checkUseTransformerPower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use transformer rated power as base"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_checkUseTransformerPower = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Use transformer rated power as base"), + wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkUseTransformerPower->SetValue(false); - + boxSizerLvl2_1->Add(m_checkUseTransformerPower, 0, wxALL, WXC_FROM_DIP(5)); - - m_panelFault = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelFault = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelFault, _("Fault"), false); - + wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL); m_panelFault->SetSizer(boxSizerLvl2_2); - - wxStaticBoxSizer* staticBoxSizerZeroImpSeq = new wxStaticBoxSizer( new wxStaticBox(m_panelFault, wxID_ANY, _("Zero-sequence impedances (p.u.)")), wxVERTICAL); - - boxSizerLvl2_2->Add(staticBoxSizerZeroImpSeq, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + wxStaticBoxSizer* staticBoxSizerZeroImpSeq = + new wxStaticBoxSizer(new wxStaticBox(m_panelFault, wxID_ANY, _("Zero-sequence impedances (p.u.)")), wxVERTICAL); + + boxSizerLvl2_2->Add(staticBoxSizerZeroImpSeq, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_3 = new wxGridSizer(0, 2, 0, 0); - + staticBoxSizerZeroImpSeq->Add(gridSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_3->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Resistance (R0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_8->Add(m_staticTextZeroResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlZeroResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextZeroResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Resistance (R0)"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_8->Add(m_staticTextZeroResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlZeroResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlZeroResistance->SetHint(wxT("")); - #endif - - boxSizerLvl4_8->Add(m_textCtrlZeroResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_8->Add(m_textCtrlZeroResistance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_9 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_3->Add(boxSizerLvl4_9, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Indutive reactance (X0)"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_9->Add(m_staticTextZeroReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlZeroReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextZeroReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Indutive reactance (X0)"), + wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_9->Add(m_staticTextZeroReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlZeroReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlZeroReactance->SetHint(wxT("")); - #endif - - boxSizerLvl4_9->Add(m_textCtrlZeroReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerGroundImpedances = new wxStaticBoxSizer( new wxStaticBox(m_panelFault, wxID_ANY, _("Ground impedances (p.u.)")), wxVERTICAL); - - boxSizerLvl2_2->Add(staticBoxSizerGroundImpedances, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_9->Add(m_textCtrlZeroReactance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + wxStaticBoxSizer* staticBoxSizerGroundImpedances = + new wxStaticBoxSizer(new wxStaticBox(m_panelFault, wxID_ANY, _("Ground impedances (p.u.)")), wxVERTICAL); + + boxSizerLvl2_2->Add(staticBoxSizerGroundImpedances, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl3_4 = new wxGridSizer(0, 2, 0, 0); - + staticBoxSizerGroundImpedances->Add(gridSizerLvl3_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_10 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_4->Add(boxSizerLvl4_10, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPrimResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Primary resistance"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_10->Add(m_staticTextPrimResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlPrimResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextPrimResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Primary resistance"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_10->Add(m_staticTextPrimResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlPrimResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPrimResistance->SetHint(wxT("")); - #endif - - boxSizerLvl4_10->Add(m_textCtrlPrimResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_10->Add(m_textCtrlPrimResistance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_11 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_4->Add(boxSizerLvl4_11, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPrimReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Primary reactance"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_11->Add(m_staticTextPrimReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlPrimReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextPrimReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Primary reactance"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_11->Add(m_staticTextPrimReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlPrimReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPrimReactance->SetHint(wxT("")); - #endif - - boxSizerLvl4_11->Add(m_textCtrlPrimReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_11->Add(m_textCtrlPrimReactance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_12 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_4->Add(boxSizerLvl4_12, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSecResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Secondary resistance"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_12->Add(m_staticTextSecResistance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlSecResistance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextSecResistance = new wxStaticText(m_panelFault, wxID_ANY, _("Secondary resistance"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_12->Add(m_staticTextSecResistance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlSecResistance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSecResistance->SetHint(wxT("")); - #endif - - boxSizerLvl4_12->Add(m_textCtrlSecResistance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_12->Add(m_textCtrlSecResistance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_13 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_4->Add(boxSizerLvl4_13, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextSecReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Secondary reactance"), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - - boxSizerLvl4_13->Add(m_staticTextSecReactance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlSecReactance = new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextSecReactance = new wxStaticText(m_panelFault, wxID_ANY, _("Secondary reactance"), wxDefaultPosition, + wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); + + boxSizerLvl4_13->Add(m_staticTextSecReactance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlSecReactance = + new wxTextCtrl(m_panelFault, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSecReactance->SetHint(wxT("")); - #endif - - boxSizerLvl4_13->Add(m_textCtrlSecReactance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_13->Add(m_textCtrlSecReactance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonStability = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonStability, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5)); - - boxSizerBottomButtons->Add(0, 0, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonStability = + new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonStability, 0, wxALL | wxALIGN_LEFT, WXC_FROM_DIP(5)); + + boxSizerBottomButtons->Add(0, 0, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("TransformerFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -1979,328 +2311,386 @@ TransformerFormBase::TransformerFormBase(wxWindow* parent, wxWindowID id, const } #endif // Connect events - m_buttonStability->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnCancelButtonClick), NULL, this); - + m_buttonStability->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(TransformerFormBase::OnStabilityButtonClick), NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnOKButtonClick), NULL, + this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(TransformerFormBase::OnCancelButtonClick), NULL, this); } TransformerFormBase::~TransformerFormBase() { - m_buttonStability->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnCancelButtonClick), NULL, this); - + m_buttonStability->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(TransformerFormBase::OnStabilityButtonClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransformerFormBase::OnOKButtonClick), + NULL, this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(TransformerFormBase::OnCancelButtonClick), NULL, this); } -LoadFormBase::LoadFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +LoadFormBase::LoadFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlName->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlName->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlName->SetMinSize(wxSize(300, -1)); + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceActivePowerArr; m_choiceActivePowerArr.Add(wxT("p.u.")); m_choiceActivePowerArr.Add(wxT("W")); m_choiceActivePowerArr.Add(wxT("kW")); m_choiceActivePowerArr.Add(wxT("MW")); - m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceActivePowerArr, 0); + m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceActivePowerArr, 0); m_choiceActivePower->SetSelection(3); - - boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceReactivePowerArr; m_choiceReactivePowerArr.Add(wxT("p.u.")); m_choiceReactivePowerArr.Add(wxT("VAr")); m_choiceReactivePowerArr.Add(wxT("kVAr")); m_choiceReactivePowerArr.Add(wxT("MVAr")); - m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactivePowerArr, 0); + m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceReactivePowerArr, 0); m_choiceReactivePower->SetSelection(3); - - boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - - m_staticTextType = new wxStaticText(m_panelGeneral, wxID_ANY, _("Load type (power flow)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextType, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + + m_staticTextType = new wxStaticText(m_panelGeneral, wxID_ANY, _("Load type (power flow)"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextType, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceTypeArr; m_choiceTypeArr.Add(wxT("Constant power")); m_choiceTypeArr.Add(wxT("Constant impedance")); - m_choiceType = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTypeArr, 0); + m_choiceType = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), + m_choiceTypeArr, 0); m_choiceType->SetSelection(0); - - boxSizerLvl2_1->Add(m_choiceType, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - - m_panelStability = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + boxSizerLvl2_1->Add(m_choiceType, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + + m_panelStability = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelStability, _("Stability"), false); - + wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL); m_panelStability->SetSizer(boxSizerLvl2_2); - - m_checkBoxPlotData = new wxCheckBox(m_panelStability, wxID_ANY, _("Plot load data"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); + + m_checkBoxPlotData = new wxCheckBox(m_panelStability, wxID_ANY, _("Plot load data"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); m_checkBoxPlotData->SetValue(false); - - boxSizerLvl2_2->Add(m_checkBoxPlotData, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_checkBoxUseCompLoad = new wxCheckBox(m_panelStability, wxID_ANY, _("Use ZIP load composition"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); + + boxSizerLvl2_2->Add(m_checkBoxPlotData, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_checkBoxUseCompLoad = new wxCheckBox(m_panelStability, wxID_ANY, _("Use ZIP load composition"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); m_checkBoxUseCompLoad->SetValue(false); - + boxSizerLvl2_2->Add(m_checkBoxUseCompLoad, 0, wxALL, WXC_FROM_DIP(5)); - + wxGridSizer* gridSizerLvl3_2 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_2->Add(gridSizerLvl3_2, 1, wxEXPAND, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerLvl4_3 = new wxStaticBoxSizer( new wxStaticBox(m_panelStability, wxID_ANY, _("Active power")), wxVERTICAL); - - gridSizerLvl3_2->Add(staticBoxSizerLvl4_3, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + wxStaticBoxSizer* staticBoxSizerLvl4_3 = + new wxStaticBoxSizer(new wxStaticBox(m_panelStability, wxID_ANY, _("Active power")), wxVERTICAL); + + gridSizerLvl3_2->Add(staticBoxSizerLvl4_3, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_3 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl4_3->Add(boxSizerLvl5_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePowerImp = new wxStaticText(m_panelStability, wxID_ANY, _("Constant impedance"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_3->Add(m_staticTextActivePowerImp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePowerImp = new wxStaticText(m_panelStability, wxID_ANY, _("Constant impedance"), + wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_3->Add(m_staticTextActivePowerImp, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_3->Add(boxSizerLvl6_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePowerImp = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePowerImp = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePowerImp->SetHint(wxT("")); - #endif - - boxSizerLvl6_1->Add(m_textCtrlActivePowerImp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_1 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl6_1->Add(m_staticTextPerc_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_1->Add(m_textCtrlActivePowerImp, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_1 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl6_1->Add(m_staticTextPerc_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_4 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl4_3->Add(boxSizerLvl5_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePowerCur = new wxStaticText(m_panelStability, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_4->Add(m_staticTextActivePowerCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePowerCur = new wxStaticText(m_panelStability, wxID_ANY, _("Constant current"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_4->Add(m_staticTextActivePowerCur, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_4->Add(boxSizerLvl6_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePowerCur = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePowerCur = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePowerCur->SetHint(wxT("")); - #endif - - boxSizerLvl6_2->Add(m_textCtrlActivePowerCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_2 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl6_2->Add(m_staticTextPerc_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_2->Add(m_textCtrlActivePowerCur, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_2 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl6_2->Add(m_staticTextPerc_2, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_5 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl4_3->Add(boxSizerLvl5_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePowerPow = new wxStaticText(m_panelStability, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_5->Add(m_staticTextActivePowerPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePowerPow = new wxStaticText(m_panelStability, wxID_ANY, _("Constant power"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_5->Add(m_staticTextActivePowerPow, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_3 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_5->Add(boxSizerLvl6_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePowerPow = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePowerPow = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePowerPow->SetHint(wxT("")); - #endif - - boxSizerLvl6_3->Add(m_textCtrlActivePowerPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_3 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl6_3->Add(m_staticTextPerc_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerLvl4_4 = new wxStaticBoxSizer( new wxStaticBox(m_panelStability, wxID_ANY, _("Reactive power")), wxVERTICAL); - - gridSizerLvl3_2->Add(staticBoxSizerLvl4_4, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_3->Add(m_textCtrlActivePowerPow, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_3 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl6_3->Add(m_staticTextPerc_3, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + wxStaticBoxSizer* staticBoxSizerLvl4_4 = + new wxStaticBoxSizer(new wxStaticBox(m_panelStability, wxID_ANY, _("Reactive power")), wxVERTICAL); + + gridSizerLvl3_2->Add(staticBoxSizerLvl4_4, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_6 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl4_4->Add(boxSizerLvl5_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePowerImp = new wxStaticText(m_panelStability, wxID_ANY, _("Constant impedance"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_6->Add(m_staticTextReactivePowerImp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePowerImp = new wxStaticText(m_panelStability, wxID_ANY, _("Constant impedance"), + wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_6->Add(m_staticTextReactivePowerImp, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_4 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_6->Add(boxSizerLvl6_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePowerImp = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePowerImp = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePowerImp->SetHint(wxT("")); - #endif - - boxSizerLvl6_4->Add(m_textCtrlReactivePowerImp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_4 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl6_4->Add(m_staticTextPerc_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_4->Add(m_textCtrlReactivePowerImp, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_4 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl6_4->Add(m_staticTextPerc_4, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_7 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl4_4->Add(boxSizerLvl5_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePowerCur = new wxStaticText(m_panelStability, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_7->Add(m_staticTextReactivePowerCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePowerCur = new wxStaticText(m_panelStability, wxID_ANY, _("Constant current"), + wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_7->Add(m_staticTextReactivePowerCur, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_5 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_7->Add(boxSizerLvl6_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePowerCur = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePowerCur = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePowerCur->SetHint(wxT("")); - #endif - - boxSizerLvl6_5->Add(m_textCtrlReactivePowerCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_5 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl6_5->Add(m_staticTextPerc_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_5->Add(m_textCtrlReactivePowerCur, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_5 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl6_5->Add(m_staticTextPerc_5, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_8 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl4_4->Add(boxSizerLvl5_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePowerPow = new wxStaticText(m_panelStability, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl5_8->Add(m_staticTextReactivePowerPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePowerPow = new wxStaticText(m_panelStability, wxID_ANY, _("Constant power"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl5_8->Add(m_staticTextReactivePowerPow, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl6_6 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl5_8->Add(boxSizerLvl6_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePowerPow = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePowerPow = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePowerPow->SetHint(wxT("")); - #endif - - boxSizerLvl6_6->Add(m_textCtrlReactivePowerPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_6 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl6_6->Add(m_staticTextPerc_6, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl6_6->Add(m_textCtrlReactivePowerPow, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_6 = new wxStaticText(m_panelStability, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl6_6->Add(m_staticTextPerc_6, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonStabButton = new wxButton(this, wxID_ANY, _("Switching"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonStabButton = + new wxButton(this, wxID_ANY, _("Switching"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL | wxALIGN_LEFT, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("LoadFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -2314,123 +2704,140 @@ LoadFormBase::LoadFormBase(wxWindow* parent, wxWindowID id, const wxString& titl } #endif // Connect events - m_checkBoxUseCompLoad->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(LoadFormBase::OnCheckBoxCompLoadClick), NULL, this); - m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnStabilityButtonClick), NULL, this); + m_checkBoxUseCompLoad->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(LoadFormBase::OnCheckBoxCompLoadClick), NULL, this); + m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(LoadFormBase::OnStabilityButtonClick), NULL, this); m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnOnButtonClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnCancelButtonClick), NULL, this); - + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnCancelButtonClick), + NULL, this); } LoadFormBase::~LoadFormBase() { - m_checkBoxUseCompLoad->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(LoadFormBase::OnCheckBoxCompLoadClick), NULL, this); - m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnOnButtonClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnCancelButtonClick), NULL, this); - + m_checkBoxUseCompLoad->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(LoadFormBase::OnCheckBoxCompLoadClick), NULL, this); + m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(LoadFormBase::OnStabilityButtonClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnOnButtonClick), NULL, + this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LoadFormBase::OnCancelButtonClick), + NULL, this); } -ReactiveShuntElementFormBase::ReactiveShuntElementFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +ReactiveShuntElementFormBase::ReactiveShuntElementFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlName->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlName->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlName->SetMinSize(wxSize(300, -1)); + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceReactivePowerArr; m_choiceReactivePowerArr.Add(wxT("p.u.")); m_choiceReactivePowerArr.Add(wxT("VAr")); m_choiceReactivePowerArr.Add(wxT("kVAr")); m_choiceReactivePowerArr.Add(wxT("MVAr")); - m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactivePowerArr, 0); + m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceReactivePowerArr, 0); m_choiceReactivePower->SetSelection(3); - - boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonStabButton = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonStabButton = + new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL | wxALIGN_LEFT, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("ReactiveShuntElementFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -2444,112 +2851,126 @@ ReactiveShuntElementFormBase::ReactiveShuntElementFormBase(wxWindow* parent, wxW } #endif // Connect events - m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnCancelButtonClick), NULL, this); - + m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ReactiveShuntElementFormBase::OnStabilityButtonClick), NULL, + this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ReactiveShuntElementFormBase::OnOKButtonClick), NULL, this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ReactiveShuntElementFormBase::OnCancelButtonClick), NULL, this); } ReactiveShuntElementFormBase::~ReactiveShuntElementFormBase() { - m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ReactiveShuntElementFormBase::OnCancelButtonClick), NULL, this); - + m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ReactiveShuntElementFormBase::OnStabilityButtonClick), NULL, + this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ReactiveShuntElementFormBase::OnOKButtonClick), NULL, this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ReactiveShuntElementFormBase::OnCancelButtonClick), NULL, this); } -SwitchingFormBase::SwitchingFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +SwitchingFormBase::SwitchingFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl1_1->Add(boxSizerLvl2_1, 0, wxALL, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL); - - boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxArrayString m_pgMgrSwitchingsPropArr; wxUnusedVar(m_pgMgrSwitchingsPropArr); wxArrayInt m_pgMgrSwitchingsPropIntArr; wxUnusedVar(m_pgMgrSwitchingsPropIntArr); - m_pgMgrSwitchingsProp = new wxPropertyGridManager(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxPG_STATIC_LAYOUT|wxPG_SPLITTER_AUTO_CENTER|wxPG_BOLD_MODIFIED); - + m_pgMgrSwitchingsProp = + new wxPropertyGridManager(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), + wxPG_STATIC_LAYOUT | wxPG_SPLITTER_AUTO_CENTER | wxPG_BOLD_MODIFIED); + boxSizerLvl3_1->Add(m_pgMgrSwitchingsProp, 1, wxALL, WXC_FROM_DIP(5)); - - m_pgPropTitle = m_pgMgrSwitchingsProp->Append( new wxPropertyCategory( _("Switching properties") ) ); + + m_pgPropTitle = m_pgMgrSwitchingsProp->Append(new wxPropertyCategory(_("Switching properties"))); m_pgPropTitle->SetHelpString(wxT("")); - + m_pgMgrSwitchingsPropArr.Clear(); m_pgMgrSwitchingsPropIntArr.Clear(); m_pgMgrSwitchingsPropArr.Add(_("Insert")); m_pgMgrSwitchingsPropArr.Add(_("Remove")); - m_pgPropType = m_pgMgrSwitchingsProp->Append( new wxEnumProperty( _("Type"), wxPG_LABEL, m_pgMgrSwitchingsPropArr, m_pgMgrSwitchingsPropIntArr, 0) ); + m_pgPropType = m_pgMgrSwitchingsProp->Append( + new wxEnumProperty(_("Type"), wxPG_LABEL, m_pgMgrSwitchingsPropArr, m_pgMgrSwitchingsPropIntArr, 0)); m_pgPropType->SetHelpString(wxT("")); - - m_pgPropTime = m_pgMgrSwitchingsProp->Append( new wxFloatProperty( _("Time (s)"), wxPG_LABEL, 0) ); + + m_pgPropTime = m_pgMgrSwitchingsProp->Append(new wxFloatProperty(_("Time (s)"), wxPG_LABEL, 0)); m_pgPropTime->SetHelpString(wxT("")); - m_pgMgrSwitchingsProp->SetMinSize(wxSize(150,-1)); - + m_pgMgrSwitchingsProp->SetMinSize(wxSize(150, -1)); + wxBoxSizer* boxSizerLvl3_3 = new wxBoxSizer(wxVERTICAL); - - boxSizerLvl2_1->Add(boxSizerLvl3_3, 0, wxALL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_buttonInsert = new wxButton(this, wxID_ANY, _("Add"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl3_3->Add(m_buttonInsert, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonRemove = new wxButton(this, wxID_ANY, _("Remove"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl3_3->Add(m_buttonRemove, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonUp = new wxButton(this, wxID_ANY, _("Up"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl3_3->Add(m_buttonUp, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonDown = new wxButton(this, wxID_ANY, _("Down"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl3_3->Add(m_buttonDown, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - + + boxSizerLvl2_1->Add(boxSizerLvl3_3, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_buttonInsert = new wxButton(this, wxID_ANY, _("Add"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl3_3->Add(m_buttonInsert, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonRemove = new wxButton(this, wxID_ANY, _("Remove"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl3_3->Add(m_buttonRemove, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonUp = new wxButton(this, wxID_ANY, _("Up"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl3_3->Add(m_buttonUp, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonDown = new wxButton(this, wxID_ANY, _("Down"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl3_3->Add(m_buttonDown, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxVERTICAL); - + boxSizerLvl2_1->Add(boxSizerLvl3_2, 0, wxALL, WXC_FROM_DIP(5)); - - m_staticTextSwList = new wxStaticText(this, wxID_ANY, _("Switching list"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl3_2->Add(m_staticTextSwList, 0, wxLEFT|wxRIGHT|wxTOP, WXC_FROM_DIP(5)); - - m_listCtrlSwitchings = new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxLC_REPORT); - - boxSizerLvl3_2->Add(m_listCtrlSwitchings, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + m_staticTextSwList = + new wxStaticText(this, wxID_ANY, _("Switching list"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl3_2->Add(m_staticTextSwList, 0, wxLEFT | wxRIGHT | wxTOP, WXC_FROM_DIP(5)); + + m_listCtrlSwitchings = + new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxLC_REPORT); + + boxSizerLvl3_2->Add(m_listCtrlSwitchings, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + SetName(wxT("SwitchingFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -2563,160 +2984,191 @@ SwitchingFormBase::SwitchingFormBase(wxWindow* parent, wxWindowID id, const wxSt } #endif // Connect events - m_pgMgrSwitchingsProp->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(SwitchingFormBase::OnChangeProperties), NULL, this); - m_buttonInsert->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnInsertButtonClick), NULL, this); - m_buttonRemove->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnRemoveButtonClick), NULL, this); - m_buttonUp->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnUpButtonClick), NULL, this); - m_buttonDown->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnDownButtonClick), NULL, this); - m_listCtrlSwitchings->Connect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(SwitchingFormBase::OnSelectItem), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnCancelButtonClick), NULL, this); - + m_pgMgrSwitchingsProp->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(SwitchingFormBase::OnChangeProperties), + NULL, this); + m_buttonInsert->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnInsertButtonClick), + NULL, this); + m_buttonRemove->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnRemoveButtonClick), + NULL, this); + m_buttonUp->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnUpButtonClick), NULL, + this); + m_buttonDown->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnDownButtonClick), + NULL, this); + m_listCtrlSwitchings->Connect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(SwitchingFormBase::OnSelectItem), + NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnOKButtonClick), NULL, + this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnCancelButtonClick), + NULL, this); } SwitchingFormBase::~SwitchingFormBase() { - m_pgMgrSwitchingsProp->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(SwitchingFormBase::OnChangeProperties), NULL, this); - m_buttonInsert->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnInsertButtonClick), NULL, this); - m_buttonRemove->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnRemoveButtonClick), NULL, this); - m_buttonUp->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnUpButtonClick), NULL, this); - m_buttonDown->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnDownButtonClick), NULL, this); - m_listCtrlSwitchings->Disconnect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(SwitchingFormBase::OnSelectItem), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnCancelButtonClick), NULL, this); - + m_pgMgrSwitchingsProp->Disconnect(wxEVT_PG_CHANGED, + wxPropertyGridEventHandler(SwitchingFormBase::OnChangeProperties), NULL, this); + m_buttonInsert->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SwitchingFormBase::OnInsertButtonClick), NULL, this); + m_buttonRemove->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SwitchingFormBase::OnRemoveButtonClick), NULL, this); + m_buttonUp->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnUpButtonClick), + NULL, this); + m_buttonDown->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnDownButtonClick), + NULL, this); + m_listCtrlSwitchings->Disconnect(wxEVT_COMMAND_LIST_ITEM_SELECTED, + wxListEventHandler(SwitchingFormBase::OnSelectItem), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SwitchingFormBase::OnOKButtonClick), + NULL, this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SwitchingFormBase::OnCancelButtonClick), NULL, this); } -IndMotorFormBase::IndMotorFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +IndMotorFormBase::IndMotorFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Name"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlName = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlName->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlName->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlName->SetMinSize(wxSize(300, -1)); + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Active power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextActivePower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_1->Add(boxSizerLvl5_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_1->Add(m_textCtrlActivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceActivePowerArr; m_choiceActivePowerArr.Add(wxT("p.u.")); m_choiceActivePowerArr.Add(wxT("W")); m_choiceActivePowerArr.Add(wxT("kW")); m_choiceActivePowerArr.Add(wxT("MW")); - m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceActivePowerArr, 0); + m_choiceActivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceActivePowerArr, 0); m_choiceActivePower->SetSelection(3); - - boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_1->Add(m_choiceActivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Reactive power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextReactivePower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_2 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_2->Add(boxSizerLvl5_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePower->SetHint(wxT("")); - #endif - - boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_2->Add(m_textCtrlReactivePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxArrayString m_choiceReactivePowerArr; m_choiceReactivePowerArr.Add(wxT("p.u.")); m_choiceReactivePowerArr.Add(wxT("VAr")); m_choiceReactivePowerArr.Add(wxT("kVAr")); m_choiceReactivePowerArr.Add(wxT("MVAr")); - m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceReactivePowerArr, 0); + m_choiceReactivePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceReactivePowerArr, 0); m_choiceReactivePower->SetSelection(3); - - boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - + + boxSizerLvl5_2->Add(m_choiceReactivePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonStabButton = new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonStabButton = + new wxButton(this, wxID_ANY, _("Stability"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonStabButton, 0, wxALL | wxALIGN_LEFT, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("IndMotorFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -2730,56 +3182,67 @@ IndMotorFormBase::IndMotorFormBase(wxWindow* parent, wxWindowID id, const wxStri } #endif // Connect events - m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnCancelButtonClick), NULL, this); - + m_buttonStabButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(IndMotorFormBase::OnStabilityButtonClick), NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnOKButtonClick), NULL, + this); + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnCancelButtonClick), + NULL, this); } IndMotorFormBase::~IndMotorFormBase() { - m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnStabilityButtonClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnCancelButtonClick), NULL, this); - + m_buttonStabButton->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(IndMotorFormBase::OnStabilityButtonClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IndMotorFormBase::OnOKButtonClick), NULL, + this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(IndMotorFormBase::OnCancelButtonClick), NULL, this); } -TextFormBase::TextFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +TextFormBase::TextFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - + wxGridSizer* gridSizerLvl3_1 = new wxGridSizer(0, 3, 0, 0); - + boxSizerLvl2_1->Add(gridSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextElement = new wxStaticText(m_panelGeneral, wxID_ANY, _("Element"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextElement, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextElement = new wxStaticText(m_panelGeneral, wxID_ANY, _("Element"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextElement, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceElementArr; m_choiceElementArr.Add(wxT("Bus")); m_choiceElementArr.Add(wxT("Generator")); @@ -2790,131 +3253,143 @@ TextFormBase::TextFormBase(wxWindow* parent, wxWindowID id, const wxString& titl m_choiceElementArr.Add(wxT("Inductor")); m_choiceElementArr.Add(wxT("Synchronous compensator")); m_choiceElementArr.Add(wxT("Induction motor")); - m_choiceElement = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceElementArr, 0); - - boxSizerLvl4_1->Add(m_choiceElement, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + m_choiceElement = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceElementArr, 0); + + boxSizerLvl4_1->Add(m_choiceElement, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Element name"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextName, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextName = new wxStaticText(m_panelGeneral, wxID_ANY, _("Element name"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceNameArr; - m_choiceName = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceNameArr, 0); - - boxSizerLvl4_2->Add(m_choiceName, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + m_choiceName = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), + m_choiceNameArr, 0); + + boxSizerLvl4_2->Add(m_choiceName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextType = new wxStaticText(m_panelGeneral, wxID_ANY, _("Text type"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_3->Add(m_staticTextType, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextType = new wxStaticText(m_panelGeneral, wxID_ANY, _("Text type"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_3->Add(m_staticTextType, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceTextTypeArr; - m_choiceTextType = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTextTypeArr, 0); - - boxSizerLvl4_3->Add(m_choiceTextType, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + m_choiceTextType = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceTextTypeArr, 0); + + boxSizerLvl4_3->Add(m_choiceTextType, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextFromBus = new wxStaticText(m_panelGeneral, wxID_ANY, _("From bus"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_4->Add(m_staticTextFromBus, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextFromBus = new wxStaticText(m_panelGeneral, wxID_ANY, _("From bus"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_4->Add(m_staticTextFromBus, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceTextFromBusArr; - m_choiceTextFromBus = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTextFromBusArr, 0); - - boxSizerLvl4_4->Add(m_choiceTextFromBus, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + m_choiceTextFromBus = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceTextFromBusArr, 0); + + boxSizerLvl4_4->Add(m_choiceTextFromBus, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextToBus = new wxStaticText(m_panelGeneral, wxID_ANY, _("To bus"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_5->Add(m_staticTextToBus, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextToBus = new wxStaticText(m_panelGeneral, wxID_ANY, _("To bus"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_5->Add(m_staticTextToBus, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceTextToBusArr; - m_choiceTextToBus = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTextToBusArr, 0); - - boxSizerLvl4_5->Add(m_choiceTextToBus, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + m_choiceTextToBus = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceTextToBusArr, 0); + + boxSizerLvl4_5->Add(m_choiceTextToBus, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl3_1->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextUnit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Unit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl4_6->Add(m_staticTextUnit, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextUnit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Unit"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl4_6->Add(m_staticTextUnit, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceTextUnitArr; - m_choiceTextUnit = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceTextUnitArr, 0); - - boxSizerLvl4_6->Add(m_choiceTextUnit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + m_choiceTextUnit = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceTextUnitArr, 0); + + boxSizerLvl4_6->Add(m_choiceTextUnit, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl2_1->Add(boxSizerLvl3_2, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextDecimal = new wxStaticText(m_panelGeneral, wxID_ANY, _("Decimal places:"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl3_2->Add(m_staticTextDecimal, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlDecimal = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("2"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), wxTE_PROCESS_ENTER); - #if wxVERSION_NUMBER >= 3000 + + boxSizerLvl2_1->Add(boxSizerLvl3_2, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_staticTextDecimal = new wxStaticText(m_panelGeneral, wxID_ANY, _("Decimal places:"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl3_2->Add(m_staticTextDecimal, 0, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlDecimal = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("2"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), wxTE_PROCESS_ENTER); +#if wxVERSION_NUMBER >= 3000 m_textCtrlDecimal->SetHint(wxT("")); - #endif - - boxSizerLvl3_2->Add(m_textCtrlDecimal, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl3_2->Add(m_textCtrlDecimal, 0, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + boxSizerLvl3_2->Add(0, 0, 0, wxALL, WXC_FROM_DIP(5)); - - m_staticTextPreview = new wxStaticText(m_panelGeneral, wxID_ANY, _("Preview:"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl3_2->Add(m_staticTextPreview, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlPreview = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), wxTE_CENTRE); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextPreview = new wxStaticText(m_panelGeneral, wxID_ANY, _("Preview:"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl3_2->Add(m_staticTextPreview, 0, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlPreview = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), wxTE_CENTRE); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPreview->SetHint(wxT("")); - #endif - - boxSizerLvl3_2->Add(m_textCtrlPreview, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl3_2->Add(m_textCtrlPreview, 1, wxALL | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("TextFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -2928,108 +3403,132 @@ TextFormBase::TextFormBase(wxWindow* parent, wxWindowID id, const wxString& titl } #endif // Connect events - m_choiceElement->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnElementChoiceSelected), NULL, this); - m_choiceName->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnNameChoiceSelected), NULL, this); - m_choiceTextType->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnTypeChoiceSelected), NULL, this); - m_choiceTextFromBus->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnFromBusChoiceSelected), NULL, this); - m_choiceTextToBus->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnToBusChoiceSelected), NULL, this); - m_choiceTextUnit->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnUnitChoiceSelected), NULL, this); + m_choiceElement->Connect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(TextFormBase::OnElementChoiceSelected), NULL, this); + m_choiceName->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnNameChoiceSelected), + NULL, this); + m_choiceTextType->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnTypeChoiceSelected), + NULL, this); + m_choiceTextFromBus->Connect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(TextFormBase::OnFromBusChoiceSelected), NULL, this); + m_choiceTextToBus->Connect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(TextFormBase::OnToBusChoiceSelected), NULL, this); + m_choiceTextUnit->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnUnitChoiceSelected), + NULL, this); m_textCtrlDecimal->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(TextFormBase::OnTextEnter), NULL, this); m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnCancelButtonClick), NULL, this); - + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnCancelButtonClick), + NULL, this); } TextFormBase::~TextFormBase() { - m_choiceElement->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnElementChoiceSelected), NULL, this); - m_choiceName->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnNameChoiceSelected), NULL, this); - m_choiceTextType->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnTypeChoiceSelected), NULL, this); - m_choiceTextFromBus->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnFromBusChoiceSelected), NULL, this); - m_choiceTextToBus->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnToBusChoiceSelected), NULL, this); - m_choiceTextUnit->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnUnitChoiceSelected), NULL, this); - m_textCtrlDecimal->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(TextFormBase::OnTextEnter), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnCancelButtonClick), NULL, this); - + m_choiceElement->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(TextFormBase::OnElementChoiceSelected), NULL, this); + m_choiceName->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TextFormBase::OnNameChoiceSelected), + NULL, this); + m_choiceTextType->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(TextFormBase::OnTypeChoiceSelected), NULL, this); + m_choiceTextFromBus->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(TextFormBase::OnFromBusChoiceSelected), NULL, this); + m_choiceTextToBus->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(TextFormBase::OnToBusChoiceSelected), NULL, this); + m_choiceTextUnit->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(TextFormBase::OnUnitChoiceSelected), NULL, this); + m_textCtrlDecimal->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(TextFormBase::OnTextEnter), NULL, + this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnOKButtonClick), NULL, + this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TextFormBase::OnCancelButtonClick), + NULL, this); } -TransferFunctionFormBase::TransferFunctionFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +TransferFunctionFormBase::TransferFunctionFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextNumerator = new wxStaticText(m_panelGeneral, wxID_ANY, _("Numerator parameters"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextNumerator, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlNumerator = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextNumerator = new wxStaticText(m_panelGeneral, wxID_ANY, _("Numerator parameters"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextNumerator, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlNumerator = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlNumerator->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlNumerator, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlNumerator->SetMinSize(wxSize(300,-1)); - - m_staticTextDenominator = new wxStaticText(m_panelGeneral, wxID_ANY, _("Denominator parameters"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextDenominator, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlDenominator = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 +#endif + + boxSizerLvl2_1->Add(m_textCtrlNumerator, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlNumerator->SetMinSize(wxSize(300, -1)); + + m_staticTextDenominator = new wxStaticText(m_panelGeneral, wxID_ANY, _("Denominator parameters"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextDenominator, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlDenominator = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlDenominator->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlDenominator, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlDenominator->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlDenominator, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlDenominator->SetMinSize(wxSize(300, -1)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("TransferFunctionFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3043,82 +3542,90 @@ TransferFunctionFormBase::TransferFunctionFormBase(wxWindow* parent, wxWindowID } #endif // Connect events - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnOKClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnCancelClick), NULL, this); - + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnOKClick), NULL, + this); + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(TransferFunctionFormBase::OnCancelClick), NULL, this); } TransferFunctionFormBase::~TransferFunctionFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnOKClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnCancelClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TransferFunctionFormBase::OnOKClick), + NULL, this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(TransferFunctionFormBase::OnCancelClick), NULL, this); } -SumFormBase::SumFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +SumFormBase::SumFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextSigns = new wxStaticText(m_panelGeneral, wxID_ANY, _("Signs"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextSigns, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlSigns = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextSigns = new wxStaticText(m_panelGeneral, wxID_ANY, _("Signs"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextSigns, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlSigns = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSigns->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlSigns, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlSigns->SetMinSize(wxSize(300,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlSigns, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlSigns->SetMinSize(wxSize(300, -1)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("SumFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3133,93 +3640,102 @@ SumFormBase::SumFormBase(wxWindow* parent, wxWindowID id, const wxString& title, #endif // Connect events m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnOKClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnCancelClick), NULL, this); - + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnCancelClick), NULL, + this); } SumFormBase::~SumFormBase() { m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnOKClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnCancelClick), NULL, this); - + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SumFormBase::OnCancelClick), NULL, + this); } -LimiterFormBase::LimiterFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +LimiterFormBase::LimiterFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextUpLimiter = new wxStaticText(m_panelGeneral, wxID_ANY, _("Upper limit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextUpLimiter, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlUpLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextUpLimiter = new wxStaticText(m_panelGeneral, wxID_ANY, _("Upper limit"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextUpLimiter, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlUpLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlUpLimit->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlUpLimit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlUpLimit->SetMinSize(wxSize(100,-1)); - - m_staticTextLowLimit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Lower limit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextLowLimit, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlLowLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 +#endif + + boxSizerLvl2_1->Add(m_textCtrlUpLimit, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlUpLimit->SetMinSize(wxSize(100, -1)); + + m_staticTextLowLimit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Lower limit"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextLowLimit, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlLowLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlLowLimit->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlLowLimit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlLowLimit->SetMinSize(wxSize(100,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlLowLimit, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlLowLimit->SetMinSize(wxSize(100, -1)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("LimiterFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3233,94 +3749,105 @@ LimiterFormBase::LimiterFormBase(wxWindow* parent, wxWindowID id, const wxString } #endif // Connect events - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnOKButtonClick), NULL, + this); + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnCancelButtonClick), + NULL, this); } LimiterFormBase::~LimiterFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(LimiterFormBase::OnOKButtonClick), NULL, + this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(LimiterFormBase::OnCancelButtonClick), NULL, this); } -RateLimiterFormBase::RateLimiterFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +RateLimiterFormBase::RateLimiterFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextUpLimiter = new wxStaticText(m_panelGeneral, wxID_ANY, _("Upper limit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextUpLimiter, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlUpLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextUpLimiter = new wxStaticText(m_panelGeneral, wxID_ANY, _("Upper limit"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextUpLimiter, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlUpLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlUpLimit->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlUpLimit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlUpLimit->SetMinSize(wxSize(100,-1)); - - m_staticTextLowLimit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Lower limit"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextLowLimit, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlLowLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 +#endif + + boxSizerLvl2_1->Add(m_textCtrlUpLimit, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlUpLimit->SetMinSize(wxSize(100, -1)); + + m_staticTextLowLimit = new wxStaticText(m_panelGeneral, wxID_ANY, _("Lower limit"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextLowLimit, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlLowLimit = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlLowLimit->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlLowLimit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlLowLimit->SetMinSize(wxSize(100,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlLowLimit, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlLowLimit->SetMinSize(wxSize(100, -1)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("RateLimiterFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3334,98 +3861,112 @@ RateLimiterFormBase::RateLimiterFormBase(wxWindow* parent, wxWindowID id, const } #endif // Connect events - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnOKButtonClick), NULL, + this); + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(RateLimiterFormBase::OnCancelButtonClick), NULL, this); } RateLimiterFormBase::~RateLimiterFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(RateLimiterFormBase::OnOKButtonClick), + NULL, this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(RateLimiterFormBase::OnCancelButtonClick), NULL, this); } -ExponentialFormBase::ExponentialFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +ExponentialFormBase::ExponentialFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextExp = new wxStaticText(m_panelGeneral, wxID_ANY, _("y = A.eB.x"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), wxALIGN_CENTRE); - - boxSizerLvl2_1->Add(m_staticTextExp, 1, wxLEFT|wxRIGHT|wxTOP|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextAValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("A value"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextAValue, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlAValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextExp = new wxStaticText(m_panelGeneral, wxID_ANY, _("y = A.eB.x"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), wxALIGN_CENTRE); + + boxSizerLvl2_1->Add(m_staticTextExp, 1, + wxLEFT | wxRIGHT | wxTOP | wxEXPAND | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextAValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("A value"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextAValue, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlAValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlAValue->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlAValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlAValue->SetMinSize(wxSize(100,-1)); - - m_staticTextBValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("B value"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextBValue, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlBValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 +#endif + + boxSizerLvl2_1->Add(m_textCtrlAValue, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlAValue->SetMinSize(wxSize(100, -1)); + + m_staticTextBValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("B value"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextBValue, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlBValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlBValue->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlBValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlBValue->SetMinSize(wxSize(100,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlBValue, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlBValue->SetMinSize(wxSize(100, -1)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("ExponentialFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3439,82 +3980,90 @@ ExponentialFormBase::ExponentialFormBase(wxWindow* parent, wxWindowID id, const } #endif // Connect events - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnOKButtonClick), NULL, + this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ExponentialFormBase::OnCancelButtonClick), NULL, this); } ExponentialFormBase::~ExponentialFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ExponentialFormBase::OnOKButtonClick), + NULL, this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ExponentialFormBase::OnCancelButtonClick), NULL, this); } -ConstantFormBase::ConstantFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +ConstantFormBase::ConstantFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("Constant value"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextValue, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("Constant value"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextValue, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlValue->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlValue->SetMinSize(wxSize(100,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlValue, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlValue->SetMinSize(wxSize(100, -1)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("ConstantFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3528,82 +4077,90 @@ ConstantFormBase::ConstantFormBase(wxWindow* parent, wxWindowID id, const wxStri } #endif // Connect events - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnOKButtonClick), NULL, + this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnCancelButtonClick), + NULL, this); } ConstantFormBase::~ConstantFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ConstantFormBase::OnOKButtonClick), NULL, + this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(ConstantFormBase::OnCancelButtonClick), NULL, this); } -GainFormBase::GainFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +GainFormBase::GainFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("Gain value"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextValue, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextValue = new wxStaticText(m_panelGeneral, wxID_ANY, _("Gain value"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextValue, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlValue = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlValue->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlValue, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlValue->SetMinSize(wxSize(100,-1)); - +#endif + + boxSizerLvl2_1->Add(m_textCtrlValue, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlValue->SetMinSize(wxSize(100, -1)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("GainFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3618,89 +4175,97 @@ GainFormBase::GainFormBase(wxWindow* parent, wxWindowID id, const wxString& titl #endif // Connect events m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnCancelButtonClick), NULL, this); - + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnCancelButtonClick), + NULL, this); } GainFormBase::~GainFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnCancelButtonClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnOKButtonClick), NULL, + this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GainFormBase::OnCancelButtonClick), + NULL, this); } -IOControlFormBase::IOControlFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +IOControlFormBase::IOControlFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_checkBoxInput = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Input"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_checkBoxInput = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Input"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxInput->SetValue(false); - - boxSizerLvl2_1->Add(m_checkBoxInput, 0, wxLEFT|wxRIGHT|wxTOP, WXC_FROM_DIP(5)); - + + boxSizerLvl2_1->Add(m_checkBoxInput, 0, wxLEFT | wxRIGHT | wxTOP, WXC_FROM_DIP(5)); + wxArrayString m_choiceInputArr; - m_choiceInput = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceInputArr, 0); - - boxSizerLvl2_1->Add(m_choiceInput, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - - m_checkBoxOutput = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Output"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + m_choiceInput = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceInputArr, 0); + + boxSizerLvl2_1->Add(m_choiceInput, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + + m_checkBoxOutput = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Output"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxOutput->SetValue(false); - - boxSizerLvl2_1->Add(m_checkBoxOutput, 0, wxLEFT|wxRIGHT|wxTOP, WXC_FROM_DIP(5)); - + + boxSizerLvl2_1->Add(m_checkBoxOutput, 0, wxLEFT | wxRIGHT | wxTOP, WXC_FROM_DIP(5)); + wxArrayString m_choiceOutputArr; - m_choiceOutput = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceOutputArr, 0); - - boxSizerLvl2_1->Add(m_choiceOutput, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + m_choiceOutput = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceOutputArr, 0); + + boxSizerLvl2_1->Add(m_choiceOutput, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_ButtonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_ButtonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("IOControlFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3714,99 +4279,114 @@ IOControlFormBase::IOControlFormBase(wxWindow* parent, wxWindowID id, const wxSt } #endif // Connect events - m_checkBoxInput->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnInputChecked), NULL, this); - m_checkBoxOutput->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOutputChecked), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnCancelButtonClick), NULL, this); - + m_checkBoxInput->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnInputChecked), + NULL, this); + m_checkBoxOutput->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOutputChecked), + NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOKButtonClick), NULL, + this); + m_ButtonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnCancelButtonClick), + NULL, this); } IOControlFormBase::~IOControlFormBase() { - m_checkBoxInput->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnInputChecked), NULL, this); - m_checkBoxOutput->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOutputChecked), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOKButtonClick), NULL, this); - m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnCancelButtonClick), NULL, this); - + m_checkBoxInput->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(IOControlFormBase::OnInputChecked), NULL, this); + m_checkBoxOutput->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(IOControlFormBase::OnOutputChecked), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IOControlFormBase::OnOKButtonClick), + NULL, this); + m_ButtonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(IOControlFormBase::OnCancelButtonClick), NULL, this); } -MathExpressionFormBase::MathExpressionFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +MathExpressionFormBase::MathExpressionFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9EE9InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerLvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - + boxSizerLvl1_1->Add(m_notebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - - m_staticTextVariables = new wxStaticText(m_panelGeneral, wxID_ANY, _("Input variables (space separated)"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl2_1->Add(m_staticTextVariables, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlVariables = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("x y"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextVariables = new wxStaticText(m_panelGeneral, wxID_ANY, _("Input variables (space separated)"), + wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl2_1->Add(m_staticTextVariables, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlVariables = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("x y"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlVariables->SetHint(wxT("")); - #endif - - boxSizerLvl2_1->Add(m_textCtrlVariables, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlVariables->SetMinSize(wxSize(100,-1)); - - m_stcMathExpr = new wxStyledTextCtrl(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - wxFont m_stcMathExprFont(10, wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("Courier New")); +#endif + + boxSizerLvl2_1->Add(m_textCtrlVariables, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlVariables->SetMinSize(wxSize(100, -1)); + + m_stcMathExpr = new wxStyledTextCtrl(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + wxFont m_stcMathExprFont(10, wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, + wxT("Courier New")); m_stcMathExpr->SetFont(m_stcMathExprFont); // Configure the fold margin - m_stcMathExpr->SetMarginType (4, wxSTC_MARGIN_SYMBOL); - m_stcMathExpr->SetMarginMask (4, wxSTC_MASK_FOLDERS); + m_stcMathExpr->SetMarginType(4, wxSTC_MARGIN_SYMBOL); + m_stcMathExpr->SetMarginMask(4, wxSTC_MASK_FOLDERS); m_stcMathExpr->SetMarginSensitive(4, true); - m_stcMathExpr->SetMarginWidth (4, 16); - - m_stcMathExpr->SetProperty(wxT("fold"),wxT("1")); - m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_ARROWDOWN); - m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_ARROW); - m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_BACKGROUND); - m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_BACKGROUND); - m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_ARROW); + m_stcMathExpr->SetMarginWidth(4, 16); + + m_stcMathExpr->SetProperty(wxT("fold"), wxT("1")); + m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_ARROWDOWN); + m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_ARROW); + m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_BACKGROUND); + m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_BACKGROUND); + m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_ARROW); m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_ARROWDOWN); m_stcMathExpr->MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_BACKGROUND); // Configure the tracker margin m_stcMathExpr->SetMarginWidth(1, 0); - + // Configure the symbol margin - m_stcMathExpr->SetMarginType (2, wxSTC_MARGIN_SYMBOL); - m_stcMathExpr->SetMarginMask (2, ~(wxSTC_MASK_FOLDERS)); + m_stcMathExpr->SetMarginType(2, wxSTC_MARGIN_SYMBOL); + m_stcMathExpr->SetMarginMask(2, ~(wxSTC_MASK_FOLDERS)); m_stcMathExpr->SetMarginWidth(2, 0); m_stcMathExpr->SetMarginSensitive(2, true); - + // Configure the line numbers margin m_stcMathExpr->SetMarginType(0, wxSTC_MARGIN_NUMBER); - m_stcMathExpr->SetMarginWidth(0,0); - + m_stcMathExpr->SetMarginWidth(0, 0); + // Configure the line symbol margin m_stcMathExpr->SetMarginType(3, wxSTC_MARGIN_FORE); m_stcMathExpr->SetMarginMask(3, 0); - m_stcMathExpr->SetMarginWidth(3,0); + m_stcMathExpr->SetMarginWidth(3, 0); // Select the lexer m_stcMathExpr->SetLexer(wxSTC_LEX_PASCAL); // Set default font / styles m_stcMathExpr->StyleClearAll(); - for(int i=0; i<wxSTC_STYLE_MAX; ++i) { - m_stcMathExpr->StyleSetFont(i, m_stcMathExprFont); - } + for(int i = 0; i < wxSTC_STYLE_MAX; ++i) { m_stcMathExpr->StyleSetFont(i, m_stcMathExprFont); } m_stcMathExpr->SetWrapMode(0); m_stcMathExpr->SetIndentationGuides(0); m_stcMathExpr->SetKeyWords(0, wxT("")); @@ -3814,46 +4394,47 @@ MathExpressionFormBase::MathExpressionFormBase(wxWindow* parent, wxWindowID id, m_stcMathExpr->SetKeyWords(2, wxT("")); m_stcMathExpr->SetKeyWords(3, wxT("")); m_stcMathExpr->SetKeyWords(4, wxT("")); - + boxSizerLvl2_1->Add(m_stcMathExpr, 0, wxALL, WXC_FROM_DIP(5)); - m_stcMathExpr->SetMinSize(wxSize(400,200)); - - m_staticTextCheckStatus = new wxStaticText(this, wxID_ANY, _("No checks performed"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerLvl1_1->Add(m_staticTextCheckStatus, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + m_stcMathExpr->SetMinSize(wxSize(400, 200)); + + m_staticTextCheckStatus = new wxStaticText(this, wxID_ANY, _("No checks performed"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl1_1->Add(m_staticTextCheckStatus, 0, + wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_buttonCheck = new wxButton(this, wxID_ANY, _("Check expression"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCheck, 0, wxALL|wxALIGN_LEFT, WXC_FROM_DIP(5)); - + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_buttonCheck = + new wxButton(this, wxID_ANY, _("Check expression"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCheck, 0, wxALL | wxALIGN_LEFT, WXC_FROM_DIP(5)); + boxSizerBottomButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("MathExpressionFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -3867,22 +4448,183 @@ MathExpressionFormBase::MathExpressionFormBase(wxWindow* parent, wxWindowID id, } #endif // Connect events - m_textCtrlVariables->Connect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(MathExpressionFormBase::OnTextUpdate), NULL, this); - m_textCtrlVariables->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MathExpressionFormBase::OnTextEnter), NULL, this); + m_textCtrlVariables->Connect(wxEVT_COMMAND_TEXT_UPDATED, + wxCommandEventHandler(MathExpressionFormBase::OnTextUpdate), NULL, this); + m_textCtrlVariables->Connect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MathExpressionFormBase::OnTextEnter), + NULL, this); m_stcMathExpr->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MathExpressionFormBase::OnLeftClickDown), NULL, this); - m_buttonCheck->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MathExpressionFormBase::OnCheckButtonClick), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MathExpressionFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MathExpressionFormBase::OnCancelButtonClick), NULL, this); - + m_buttonCheck->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(MathExpressionFormBase::OnCheckButtonClick), NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MathExpressionFormBase::OnOKButtonClick), + NULL, this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(MathExpressionFormBase::OnCancelButtonClick), NULL, this); } MathExpressionFormBase::~MathExpressionFormBase() { - m_textCtrlVariables->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler(MathExpressionFormBase::OnTextUpdate), NULL, this); - m_textCtrlVariables->Disconnect(wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler(MathExpressionFormBase::OnTextEnter), NULL, this); - m_stcMathExpr->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MathExpressionFormBase::OnLeftClickDown), NULL, this); - m_buttonCheck->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MathExpressionFormBase::OnCheckButtonClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MathExpressionFormBase::OnOKButtonClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MathExpressionFormBase::OnCancelButtonClick), NULL, this); - + m_textCtrlVariables->Disconnect(wxEVT_COMMAND_TEXT_UPDATED, + wxCommandEventHandler(MathExpressionFormBase::OnTextUpdate), NULL, this); + m_textCtrlVariables->Disconnect(wxEVT_COMMAND_TEXT_ENTER, + wxCommandEventHandler(MathExpressionFormBase::OnTextEnter), NULL, this); + m_stcMathExpr->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MathExpressionFormBase::OnLeftClickDown), NULL, + this); + m_buttonCheck->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(MathExpressionFormBase::OnCheckButtonClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MathExpressionFormBase::OnOKButtonClick), + NULL, this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(MathExpressionFormBase::OnCancelButtonClick), NULL, this); +} + +HarmCurrentFormBase::HarmCurrentFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) + : wxDialog(parent, id, title, pos, size, style) +{ + if(!bBitmapLoaded) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC9EE9InitBitmapResources(); + bBitmapLoaded = true; + } + + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizerLvl1_1); + + wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL); + + boxSizerLvl1_1->Add(boxSizerLvl2_2, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_staticTextName = + new wxStaticText(this, wxID_ANY, _("Name"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl2_2->Add(m_staticTextName, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlName = new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 + m_textCtrlName->SetHint(wxT("")); +#endif + + boxSizerLvl2_2->Add(m_textCtrlName, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlName->SetMinSize(wxSize(300, -1)); + + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxHORIZONTAL); + + boxSizerLvl1_1->Add(boxSizerLvl2_1, 0, wxALL, WXC_FROM_DIP(5)); + + wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL); + + boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + wxArrayString m_pgMgrHarmCurrentPropArr; + wxUnusedVar(m_pgMgrHarmCurrentPropArr); + wxArrayInt m_pgMgrHarmCurrentPropIntArr; + wxUnusedVar(m_pgMgrHarmCurrentPropIntArr); + m_pgMgrHarmCurrentProp = + new wxPropertyGridManager(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), + wxPG_STATIC_LAYOUT | wxPG_SPLITTER_AUTO_CENTER | wxPG_BOLD_MODIFIED); + + boxSizerLvl3_1->Add(m_pgMgrHarmCurrentProp, 1, wxALL, WXC_FROM_DIP(5)); + + m_pgPropTitle = m_pgMgrHarmCurrentProp->Append(new wxPropertyCategory(_("Harmonic Current properties"))); + m_pgPropTitle->SetHelpString(wxT("")); + + m_pgPropHarmOrder = m_pgMgrHarmCurrentProp->Append(new wxIntProperty(_("Order"), wxPG_LABEL, 3)); + m_pgPropHarmOrder->SetHelpString(wxT("")); + + m_pgPropHarmCurrent = m_pgMgrHarmCurrentProp->Append(new wxFloatProperty(_("Current"), wxPG_LABEL, 0)); + m_pgPropHarmCurrent->SetHelpString(wxT("")); + + m_pgMgrHarmCurrentPropArr.Clear(); + m_pgMgrHarmCurrentPropIntArr.Clear(); + m_pgMgrHarmCurrentPropArr.Add(_("A")); + m_pgMgrHarmCurrentPropArr.Add(_("p.u.")); + m_pgPropUnit = m_pgMgrHarmCurrentProp->Append( + new wxEnumProperty(_("Unit"), wxPG_LABEL, m_pgMgrHarmCurrentPropArr, m_pgMgrHarmCurrentPropIntArr, 0)); + m_pgPropUnit->SetHelpString(wxT("")); + + m_pgPropHarmAngle = m_pgMgrHarmCurrentProp->Append(new wxFloatProperty(_("Angle (degrees)"), wxPG_LABEL, 0)); + m_pgPropHarmAngle->SetHelpString(wxT("")); + m_pgMgrHarmCurrentProp->SetMinSize(wxSize(300, -1)); + + wxBoxSizer* boxSizerLvl3_3 = new wxBoxSizer(wxVERTICAL); + + boxSizerLvl2_1->Add(boxSizerLvl3_3, 0, wxALL | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_buttonInsert = new wxButton(this, wxID_ANY, _("Add"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl3_3->Add(m_buttonInsert, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonRemove = new wxButton(this, wxID_ANY, _("Remove"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl3_3->Add(m_buttonRemove, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxVERTICAL); + + boxSizerLvl2_1->Add(boxSizerLvl3_2, 0, wxALL, WXC_FROM_DIP(5)); + + m_staticTextHarmCurrentList = new wxStaticText(this, wxID_ANY, _("Injected harmonic currents"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerLvl3_2->Add(m_staticTextHarmCurrentList, 0, wxLEFT | wxRIGHT | wxTOP, WXC_FROM_DIP(5)); + + m_listCtrlHarmCurrentList = + new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxLC_REPORT); + + boxSizerLvl3_2->Add(m_listCtrlHarmCurrentList, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + m_listCtrlHarmCurrentList->SetMinSize(wxSize(400, -1)); + + wxBoxSizer* boxSizerBottomButtons = new wxBoxSizer(wxHORIZONTAL); + + boxSizerLvl1_1->Add(boxSizerBottomButtons, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerBottomButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + SetName(wxT("HarmCurrentFormBase")); + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_buttonInsert->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(HarmCurrentFormBase::OnAddButtonClick), + NULL, this); + m_buttonRemove->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(HarmCurrentFormBase::OnRemoveButtonClick), NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(HarmCurrentFormBase::OnOKButtonClick), NULL, + this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(HarmCurrentFormBase::OnCancelButtonClick), NULL, this); +} + +HarmCurrentFormBase::~HarmCurrentFormBase() +{ + m_buttonInsert->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(HarmCurrentFormBase::OnAddButtonClick), NULL, this); + m_buttonRemove->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(HarmCurrentFormBase::OnRemoveButtonClick), NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(HarmCurrentFormBase::OnOKButtonClick), + NULL, this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(HarmCurrentFormBase::OnCancelButtonClick), NULL, this); } diff --git a/Project/ElementFormBase.h b/Project/ElementFormBase.h index 0c1ac13..284e2de 100644 --- a/Project/ElementFormBase.h +++ b/Project/ElementFormBase.h @@ -7,33 +7,33 @@ #ifndef _PSP_PROJECT_ELEMENTFORM_BASE_CLASSES_H #define _PSP_PROJECT_ELEMENTFORM_BASE_CLASSES_H -#include <wx/settings.h> -#include <wx/xrc/xmlres.h> -#include <wx/xrc/xh_bmp.h> +#include <wx/arrstr.h> +#include <wx/artprov.h> +#include <wx/button.h> +#include <wx/checkbox.h> +#include <wx/choice.h> #include <wx/dialog.h> #include <wx/iconbndl.h> -#include <wx/artprov.h> -#include <wx/sizer.h> +#include <wx/imaglist.h> +#include <wx/listctrl.h> #include <wx/notebook.h> #include <wx/panel.h> -#include <wx/imaglist.h> -#include <wx/stattext.h> -#include <wx/textctrl.h> -#include <wx/choice.h> -#include <wx/arrstr.h> -#include <wx/checkbox.h> -#include <wx/button.h> -#include <wx/statbox.h> -#include <wx/statline.h> +//#include <wx/propgrid/advprops.h> #include <wx/propgrid/manager.h> #include <wx/propgrid/property.h> -#include <wx/propgrid/advprops.h> -#include <wx/listctrl.h> +#include <wx/settings.h> +#include <wx/sizer.h> +#include <wx/statbox.h> +#include <wx/statline.h> +#include <wx/stattext.h> #include <wx/stc/stc.h> +#include <wx/textctrl.h> +#include <wx/xrc/xh_bmp.h> +#include <wx/xrc/xmlres.h> #if wxVERSION_NUMBER >= 2900 #include <wx/persist.h> -#include <wx/persist/toplevel.h> #include <wx/persist/bookctrl.h> +#include <wx/persist/toplevel.h> #include <wx/persist/treebook.h> #endif @@ -46,10 +46,9 @@ #define WXC_FROM_DIP(x) x #endif - class BusFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextName; @@ -91,7 +90,7 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnNominalVoltageChoice(wxCommandEvent& event) { event.Skip(); } virtual void OnControlledVoltageClick(wxCommandEvent& event) { event.Skip(); } virtual void OnInsertFaultClick(wxCommandEvent& event) { event.Skip(); } @@ -100,7 +99,7 @@ protected: virtual void OnButtonOKClick(wxCommandEvent& event) { event.Skip(); } virtual void OnButtonCancelClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextName() { return m_staticTextName; } wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } wxStaticText* GetStaticTextNomVoltage() { return m_staticTextNomVoltage; } @@ -141,14 +140,18 @@ public: wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - BusFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Bus"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + BusFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Bus"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~BusFormBase(); }; - class SyncMachineFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextName; @@ -191,14 +194,14 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnCheckMaxReactive(wxCommandEvent& event) { event.Skip(); } virtual void OnCheckMinReactive(wxCommandEvent& event) { event.Skip(); } virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextName() { return m_staticTextName; } wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } wxStaticText* GetStaticTextNominalPower() { return m_staticTextNominalPower; } @@ -240,14 +243,18 @@ public: wxButton* GetButtonStab() { return m_buttonStab; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - SyncMachineFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Generator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + SyncMachineFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Generator"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~SyncMachineFormBase(); }; - class GeneratorStabFormBase : public wxDialog { -protected: + protected: wxCheckBox* m_checkBoxPlotSyncMachine; wxStaticText* m_staticTextInertia; wxTextCtrl* m_textCtrlInertia; @@ -269,6 +276,9 @@ protected: wxStaticText* m_staticTextSat; wxTextCtrl* m_textCtrlSat; wxStaticText* m_staticTextPU_10; + wxStaticText* m_staticTextOCFreq; + wxTextCtrl* m_textCtrlOCFreq; + wxStaticText* m_staticTextHz_1; wxStaticText* m_staticTextSyncXd; wxTextCtrl* m_textCtrlSyncXd; wxStaticText* m_staticTextPU_3; @@ -303,7 +313,7 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void UseAVRClick(wxCommandEvent& event) { event.Skip(); } virtual void OnEditAVRButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void UseSGClick(wxCommandEvent& event) { event.Skip(); } @@ -312,7 +322,7 @@ protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxCheckBox* GetCheckBoxPlotSyncMachine() { return m_checkBoxPlotSyncMachine; } wxStaticText* GetStaticTextInertia() { return m_staticTextInertia; } wxTextCtrl* GetTextCtrlInertia() { return m_textCtrlInertia; } @@ -334,6 +344,9 @@ public: wxStaticText* GetStaticTextSat() { return m_staticTextSat; } wxTextCtrl* GetTextCtrlSat() { return m_textCtrlSat; } wxStaticText* GetStaticTextPU_10() { return m_staticTextPU_10; } + wxStaticText* GetStaticTextOCFreq() { return m_staticTextOCFreq; } + wxTextCtrl* GetTextCtrlOCFreq() { return m_textCtrlOCFreq; } + wxStaticText* GetStaticTextHz_1() { return m_staticTextHz_1; } wxStaticText* GetStaticTextSyncXd() { return m_staticTextSyncXd; } wxTextCtrl* GetTextCtrlSyncXd() { return m_textCtrlSyncXd; } wxStaticText* GetStaticTextPU_3() { return m_staticTextPU_3; } @@ -367,14 +380,18 @@ public: wxButton* GetButtonSwitching() { return m_buttonSwitching; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - GeneratorStabFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Generator: Stability"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + GeneratorStabFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Generator: Stability"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~GeneratorStabFormBase(); }; - class LineFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextName; @@ -408,12 +425,12 @@ protected: wxButton* m_buttonOK; wxButton* m_buttonCancel; -protected: + protected: virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextName() { return m_staticTextName; } wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } wxStaticText* GetStaticTextNominalVoltage() { return m_staticTextNominalVoltage; } @@ -446,14 +463,18 @@ public: wxButton* GetButtonStability() { return m_buttonStability; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } - LineFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Line"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + LineFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Line"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~LineFormBase(); }; - class TransformerFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextName; @@ -497,12 +518,12 @@ protected: wxButton* m_buttonOK; wxButton* m_buttonCancel; -protected: + protected: virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextName() { return m_staticTextName; } wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } wxStaticText* GetStaticTextNominalVoltage() { return m_staticTextNominalVoltage; } @@ -545,14 +566,18 @@ public: wxButton* GetButtonStability() { return m_buttonStability; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } - TransformerFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Transformer"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + TransformerFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Transformer"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~TransformerFormBase(); }; - class LoadFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextName; @@ -590,13 +615,13 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnCheckBoxCompLoadClick(wxCommandEvent& event) { event.Skip(); } virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnOnButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextName() { return m_staticTextName; } wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } wxStaticText* GetStaticTextActivePower() { return m_staticTextActivePower; } @@ -633,14 +658,18 @@ public: wxButton* GetButtonStabButton() { return m_buttonStabButton; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - LoadFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Load"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + LoadFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Load"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~LoadFormBase(); }; - class ReactiveShuntElementFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextName; @@ -652,12 +681,12 @@ protected: wxButton* m_buttonOK; wxButton* m_buttonCancel; -protected: + protected: virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextName() { return m_staticTextName; } wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } wxStaticText* GetStaticTextReactivePower() { return m_staticTextReactivePower; } @@ -668,14 +697,18 @@ public: wxButton* GetButtonStabButton() { return m_buttonStabButton; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } - ReactiveShuntElementFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Reactive shunt element"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + ReactiveShuntElementFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Reactive shunt element"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~ReactiveShuntElementFormBase(); }; - class SwitchingFormBase : public wxDialog { -protected: + protected: wxPropertyGridManager* m_pgMgrSwitchingsProp; wxPGProperty* m_pgPropTitle; wxPGProperty* m_pgPropType; @@ -689,7 +722,7 @@ protected: wxButton* m_buttonOK; wxButton* m_buttonCancel; -protected: + protected: virtual void OnChangeProperties(wxPropertyGridEvent& event) { event.Skip(); } virtual void OnInsertButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnRemoveButtonClick(wxCommandEvent& event) { event.Skip(); } @@ -699,7 +732,7 @@ protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxPropertyGridManager* GetPgMgrSwitchingsProp() { return m_pgMgrSwitchingsProp; } wxButton* GetButtonInsert() { return m_buttonInsert; } wxButton* GetButtonRemove() { return m_buttonRemove; } @@ -709,14 +742,18 @@ public: wxListCtrl* GetListCtrlSwitchings() { return m_listCtrlSwitchings; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } - SwitchingFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Switching"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + SwitchingFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Switching"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~SwitchingFormBase(); }; - class IndMotorFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextName; @@ -731,12 +768,12 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnStabilityButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextName() { return m_staticTextName; } wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } wxStaticText* GetStaticTextActivePower() { return m_staticTextActivePower; } @@ -750,14 +787,18 @@ public: wxButton* GetButtonStabButton() { return m_buttonStabButton; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - IndMotorFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Motor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + IndMotorFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Motor"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~IndMotorFormBase(); }; - class TextFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextElement; @@ -779,7 +820,7 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnElementChoiceSelected(wxCommandEvent& event) { event.Skip(); } virtual void OnNameChoiceSelected(wxCommandEvent& event) { event.Skip(); } virtual void OnTypeChoiceSelected(wxCommandEvent& event) { event.Skip(); } @@ -790,7 +831,7 @@ protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextElement() { return m_staticTextElement; } wxChoice* GetChoiceElement() { return m_choiceElement; } wxStaticText* GetStaticTextName() { return m_staticTextName; } @@ -811,14 +852,18 @@ public: wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - TextFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + TextFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Text"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~TextFormBase(); }; - class TransferFunctionFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextNumerator; @@ -828,11 +873,11 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnOKClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextNumerator() { return m_staticTextNumerator; } wxTextCtrl* GetTextCtrlNumerator() { return m_textCtrlNumerator; } wxStaticText* GetStaticTextDenominator() { return m_staticTextDenominator; } @@ -841,14 +886,18 @@ public: wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - TransferFunctionFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Transfer function"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + TransferFunctionFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Transfer function"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~TransferFunctionFormBase(); }; - class SumFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextSigns; @@ -856,25 +905,29 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnOKClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextSigns() { return m_staticTextSigns; } wxTextCtrl* GetTextCtrlSigns() { return m_textCtrlSigns; } wxPanel* GetPanelGeneral() { return m_panelGeneral; } wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - SumFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Sum"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + SumFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Sum"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~SumFormBase(); }; - class LimiterFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextUpLimiter; @@ -884,11 +937,11 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextUpLimiter() { return m_staticTextUpLimiter; } wxTextCtrl* GetTextCtrlUpLimit() { return m_textCtrlUpLimit; } wxStaticText* GetStaticTextLowLimit() { return m_staticTextLowLimit; } @@ -897,14 +950,18 @@ public: wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - LimiterFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Limiter"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + LimiterFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Limiter"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~LimiterFormBase(); }; - class RateLimiterFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextUpLimiter; @@ -914,11 +971,11 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextUpLimiter() { return m_staticTextUpLimiter; } wxTextCtrl* GetTextCtrlUpLimit() { return m_textCtrlUpLimit; } wxStaticText* GetStaticTextLowLimit() { return m_staticTextLowLimit; } @@ -927,14 +984,18 @@ public: wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - RateLimiterFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Rate limiter"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + RateLimiterFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Rate limiter"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~RateLimiterFormBase(); }; - class ExponentialFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextExp; @@ -945,11 +1006,11 @@ protected: wxButton* m_buttonOK; wxButton* m_buttonCancel; -protected: + protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextExp() { return m_staticTextExp; } wxStaticText* GetStaticTextAValue() { return m_staticTextAValue; } wxTextCtrl* GetTextCtrlAValue() { return m_textCtrlAValue; } @@ -959,14 +1020,18 @@ public: wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } - ExponentialFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Exponential"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + ExponentialFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Exponential"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~ExponentialFormBase(); }; - class ConstantFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextValue; @@ -974,25 +1039,29 @@ protected: wxButton* m_buttonOK; wxButton* m_buttonCancel; -protected: + protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextValue() { return m_staticTextValue; } wxTextCtrl* GetTextCtrlValue() { return m_textCtrlValue; } wxPanel* GetPanelGeneral() { return m_panelGeneral; } wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } - ConstantFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Constant"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + ConstantFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Constant"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~ConstantFormBase(); }; - class GainFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextValue; @@ -1000,25 +1069,29 @@ protected: wxButton* m_buttonOK; wxButton* m_buttonCancel; -protected: + protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextValue() { return m_staticTextValue; } wxTextCtrl* GetTextCtrlValue() { return m_textCtrlValue; } wxPanel* GetPanelGeneral() { return m_panelGeneral; } wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } - GainFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Gain"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + GainFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Gain"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~GainFormBase(); }; - class IOControlFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxCheckBox* m_checkBoxInput; @@ -1028,13 +1101,13 @@ protected: wxButton* m_buttonOK; wxButton* m_ButtonCancel; -protected: + protected: virtual void OnInputChecked(wxCommandEvent& event) { event.Skip(); } virtual void OnOutputChecked(wxCommandEvent& event) { event.Skip(); } virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxCheckBox* GetCheckBoxInput() { return m_checkBoxInput; } wxChoice* GetChoiceInput() { return m_choiceInput; } wxCheckBox* GetCheckBoxOutput() { return m_checkBoxOutput; } @@ -1043,14 +1116,18 @@ public: wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_ButtonCancel; } - IOControlFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Input / Output"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + IOControlFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Input / Output"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~IOControlFormBase(); }; - class MathExpressionFormBase : public wxDialog { -protected: + protected: wxNotebook* m_notebook; wxPanel* m_panelGeneral; wxStaticText* m_staticTextVariables; @@ -1061,7 +1138,7 @@ protected: wxButton* m_buttonOK; wxButton* m_buttonCancel; -protected: + protected: virtual void OnTextUpdate(wxCommandEvent& event) { event.Skip(); } virtual void OnTextEnter(wxCommandEvent& event) { event.Skip(); } virtual void OnLeftClickDown(wxMouseEvent& event) { event.Skip(); } @@ -1069,7 +1146,7 @@ protected: virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } -public: + public: wxStaticText* GetStaticTextVariables() { return m_staticTextVariables; } wxTextCtrl* GetTextCtrlVariables() { return m_textCtrlVariables; } wxStyledTextCtrl* GetStcMathExpr() { return m_stcMathExpr; } @@ -1079,8 +1156,56 @@ public: wxButton* GetButtonCheck() { return m_buttonCheck; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } - MathExpressionFormBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Math expression"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_DIALOG_STYLE); + MathExpressionFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Math expression"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); virtual ~MathExpressionFormBase(); }; +class HarmCurrentFormBase : public wxDialog +{ + protected: + wxStaticText* m_staticTextName; + wxTextCtrl* m_textCtrlName; + wxPropertyGridManager* m_pgMgrHarmCurrentProp; + wxPGProperty* m_pgPropTitle; + wxPGProperty* m_pgPropHarmOrder; + wxPGProperty* m_pgPropHarmCurrent; + wxPGProperty* m_pgPropUnit; + wxPGProperty* m_pgPropHarmAngle; + wxButton* m_buttonInsert; + wxButton* m_buttonRemove; + wxStaticText* m_staticTextHarmCurrentList; + wxListCtrl* m_listCtrlHarmCurrentList; + wxButton* m_buttonOK; + wxButton* m_buttonCancel; + + protected: + virtual void OnAddButtonClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnRemoveButtonClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnCancelButtonClick(wxCommandEvent& event) { event.Skip(); } + + public: + wxStaticText* GetStaticTextName() { return m_staticTextName; } + wxTextCtrl* GetTextCtrlName() { return m_textCtrlName; } + wxPropertyGridManager* GetPgMgrHarmCurrentProp() { return m_pgMgrHarmCurrentProp; } + wxButton* GetButtonInsert() { return m_buttonInsert; } + wxButton* GetButtonRemove() { return m_buttonRemove; } + wxStaticText* GetStaticTextHarmCurrentList() { return m_staticTextHarmCurrentList; } + wxListCtrl* GetListCtrlHarmCurrentList() { return m_listCtrlHarmCurrentList; } + wxButton* GetButtonOK() { return m_buttonOK; } + wxButton* GetButtonCancel() { return m_buttonCancel; } + HarmCurrentFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Switching"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); + virtual ~HarmCurrentFormBase(); +}; + #endif diff --git a/Project/ElementFormBitmaps.cpp b/Project/ElementFormBitmaps.cpp index b955c05..1e26d30 100644 --- a/Project/ElementFormBitmaps.cpp +++ b/Project/ElementFormBitmaps.cpp @@ -44,6 +44,6 @@ void wxC9EE9InitBitmapResources() else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); } - XRC_ADD_FILE(wxT("XRC_resource/ElementFormBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ElementFormBitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/ElementFormBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ElementFormBitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/ElementFormBitmaps.cpp$C__Users_thale_Documents_GitHub_PSP_Project_ElementFormBitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/ElementFormBitmaps.cpp$C__Users_thale_Documents_GitHub_PSP_Project_ElementFormBitmaps.xrc")); } diff --git a/Project/FileHanding.cpp b/Project/FileHanding.cpp index 91ddcfe..7120063 100644 --- a/Project/FileHanding.cpp +++ b/Project/FileHanding.cpp @@ -232,6 +232,17 @@ void FileHanding::SaveProject(wxFileName path) elementID++; } //} + + //{ HarmCurrent + auto harmCurrentNode = XMLParser::AppendNode(doc, elementsNode, "HarmCurrentList"); + auto harmCurrentList = allElements.GetHarmCurrentList(); + elementID = 0; + for(auto it = harmCurrentList.begin(), itEnd = harmCurrentList.end(); it != itEnd; ++it) { + (*it)->SetID(elementID); + (*it)->SaveElement(doc, harmCurrentNode); + elementID++; + } + //} //{ Text auto textsNode = XMLParser::AppendNode(doc, elementsNode, "TextList"); @@ -333,6 +344,7 @@ bool FileHanding::OpenProject(wxFileName path) std::vector<SyncGenerator*> syncGeneratorList; std::vector<SyncMotor*> syncMotorList; std::vector<Transformer*> transformerList; + std::vector<HarmCurrent*> harmCurrentList; std::vector<Text*> textList; // List of parents @@ -480,6 +492,20 @@ bool FileHanding::OpenProject(wxFileName path) transfomerNode = transfomerNode->next_sibling("Transfomer"); } //} + + //{ Transformer + auto harmCurrentListNode = elementsNode->first_node("HarmCurrentList"); + if(!harmCurrentListNode) return false; + auto harmCurrentNode = harmCurrentListNode->first_node("HarmCurrent"); + while(harmCurrentNode) { + HarmCurrent* harmCurrent = new HarmCurrent(); + + if(!harmCurrent->OpenElement(harmCurrentNode, parentList)) return false; + elementList.push_back(harmCurrent); + harmCurrentList.push_back(harmCurrent); + + harmCurrentNode = harmCurrentNode->next_sibling("HarmCurrent"); + } //} m_workspace->SetElementList(elementList); @@ -531,6 +557,10 @@ bool FileHanding::OpenProject(wxFileName path) Transformer* transformer = transformerList[text->GetElementNumber()]; text->SetElement(transformer); } break; + case TYPE_HARMCURRENT: { + HarmCurrent* harmCurrent = harmCurrentList[text->GetElementNumber()]; + text->SetElement(harmCurrent); + } break; } textList.push_back(text); diff --git a/Project/GeneratorStabForm.cpp b/Project/GeneratorStabForm.cpp index d1a3c6e..3eb3a39 100644 --- a/Project/GeneratorStabForm.cpp +++ b/Project/GeneratorStabForm.cpp @@ -44,6 +44,7 @@ GeneratorStabForm::GeneratorStabForm(wxWindow* parent, SyncGenerator* syncGenera m_textCtrlRa->SetValue(SyncGenerator::StringFromDouble(data.armResistance)); m_textCtrlXp->SetValue(SyncGenerator::StringFromDouble(data.potierReactance)); m_textCtrlSat->SetValue(SyncGenerator::StringFromDouble(data.satFactor)); + m_textCtrlOCFreq->SetValue(SyncGenerator::StringFromDouble(data.ocFrequency)); m_textCtrlSyncXd->SetValue(SyncGenerator::StringFromDouble(data.syncXd)); m_textCtrlSyncXq->SetValue(SyncGenerator::StringFromDouble(data.syncXq)); @@ -155,6 +156,10 @@ bool GeneratorStabForm::ValidateData() if(!m_syncGenerator->DoubleFromString(m_parent, m_textCtrlSat->GetValue(), data.satFactor, _("Value entered incorrectly in the field \"Saturation factor\"."))) return false; + + if(!m_syncGenerator->DoubleFromString(m_parent, m_textCtrlOCFreq->GetValue(), data.ocFrequency, + _("Value entered incorrectly in the field \"Open-circuit frequency\"."))) + return false; if(!m_syncGenerator->DoubleFromString(m_parent, m_textCtrlSyncXd->GetValue(), data.syncXd, _("Value entered incorrectly in the field \"Synchronous direct-axis reactance\"."))) diff --git a/Project/GraphAutoLayout.cpp b/Project/GraphAutoLayout.cpp new file mode 100644 index 0000000..972ce25 --- /dev/null +++ b/Project/GraphAutoLayout.cpp @@ -0,0 +1,126 @@ +#include "GraphAutoLayout.h" +//#include "ImportForm.h" + +GraphAutoLayout::GraphAutoLayout() {} + +GraphAutoLayout::~GraphAutoLayout() {} + +GraphAutoLayout::GraphAutoLayout(std::vector<ParseMatpower::BusData*> busData, + std::vector<ParseMatpower::BranchData*> branchData) +{ + m_busData = busData; + m_branchData = branchData; + for(auto it = m_busData.begin(); it != m_busData.end(); ++it) { + GraphLayoutNode node; + m_nodes.push_back(node); + } + for(auto it = m_branchData.begin(); it != m_branchData.end(); ++it) { + ParseMatpower::BranchData* branch = *it; + float weight = 1.0; + if(branch->tap > 1e-3) weight = 2.0; + AddLink(branch->busConnections.first - 1, branch->busConnections.second - 1, weight); + } +} + +void GraphAutoLayout::AddLink(size_t index1, size_t index2, float weight) +{ + // If the two indices are the same, or if the weight is zero, do nothing (no link) + if(index1 == index2 || weight == 0.f) { return; } + // If the number of nodes is lesser than one of the indices, extend the nodes vector + size_t maxIndex = std::max(index1, index2); + size_t nodesMaxIndex = m_nodes.size() - 1; + for(size_t i = nodesMaxIndex; i < maxIndex; i++) { + GraphLayoutNode node; + m_nodes.push_back(node); + } + // Add an edge + m_edges.push_back((GraphLayoutEdge){.node1 = m_nodes[index1], .node2 = m_nodes[index2], .weight = weight}); +} + +void GraphAutoLayout::Compute(size_t iterations) +{ + wxProgressDialog pbd(_("Importing..."), _("Initializing..."), iterations, NULL, + wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_CAN_ABORT | wxPD_SMOOTH); + + float nodesCount = m_nodes.size(); + + // Initialize nodes positions on a circle + float a = 0.f; + float da = 2.f * M_PI / nodesCount; + for(auto node = m_nodes.begin(); node != m_nodes.end(); node++) { + node->position.x = nodesCount * std::cos(a); + node->position.y = nodesCount * std::sin(a); + a += da; + } + + // Initial parameters; other values can be chosen for area; + float area = nodesCount; + float k2 = area / nodesCount; + float k = sqrt(k2); + + for(size_t i = 0; i < iterations; i++) { + // Temperature cools down; starts at 1, ends at 0 + // (other formulas can be used for the cooling) + float temperature = 1.f - i / (float)iterations; + temperature *= temperature; + + // Calculate repulsive forces + for(auto node1 = m_nodes.begin(); node1 != m_nodes.end(); node1++) { + node1->displacement = {0.f, 0.f}; + for(auto node2 = m_nodes.begin(); node2 != m_nodes.end(); node2++) { + float dx = node1->position.x - node2->position.x; + float dy = node1->position.y - node2->position.y; + if(dx && dy) { + float d2 = dx * dx + dy * dy; + float coefficient = k2 / d2; + node1->displacement.x += coefficient * dx; + node1->displacement.y += coefficient * dy; + } + } + } + + // Calculate attractive forces + for(auto edge = m_edges.begin(); edge != m_edges.end(); edge++) { + float dx = edge->node1.position.x - edge->node2.position.x; + float dy = edge->node1.position.y - edge->node2.position.y; + float d2 = dx * dx + dy * dy; + float coefficient = sqrt(d2) / k * edge->weight; + edge->node1.displacement.x -= dx * coefficient; + edge->node1.displacement.y -= dy * coefficient; + edge->node2.displacement.x += dx * coefficient; + edge->node2.displacement.y += dy * coefficient; + } + + // Calculate positions + float sum = 0.f; + for(auto node = m_nodes.begin(); node != m_nodes.end(); node++) { + float d2 = node->displacement.x * node->displacement.x + node->displacement.y * node->displacement.y; + float d = sqrt(d2); + if(d > temperature) { + float coefficient = temperature / d; + node->displacement.x *= coefficient; + node->displacement.y *= coefficient; + sum += temperature; + } else { + sum += d; + } + node->position.x += node->displacement.x; + node->position.y += node->displacement.y; + } + + if(!pbd.Update(i, wxString::Format("Iteration = %d", i))) { + pbd.Update(iterations); + i = iterations; + } + } +} + +void GraphAutoLayout::CalculatePositions(int iterations, double scale) +{ + Compute(iterations); + int index = 0; + for(auto it = m_busData.begin(); it != m_busData.end(); ++it) { + (*it)->busPosition = wxPoint2DDouble(m_nodes[index].position.x * scale, m_nodes[index].position.y * scale); + index++; + } +} diff --git a/Project/GraphAutoLayout.h b/Project/GraphAutoLayout.h new file mode 100644 index 0000000..4d42752 --- /dev/null +++ b/Project/GraphAutoLayout.h @@ -0,0 +1,46 @@ +// Code based in: "Weighted graphs: generate a layout in C++" +// https://rodic.fr/blog/c-weighted-graph-layout-fruchterman-reingold/ + +#ifndef GRAPHAUTOLAYOUT_H +#define GRAPHAUTOLAYOUT_H + +#include <cmath> +//#include <vector> +#include <wx/gdicmn.h> +#include <wx/progdlg.h> + +// class ParseMatpower; +#include "ImportForm.h" + +class GraphAutoLayout +{ + public: + struct GraphLayoutNode { + wxRealPoint position; + wxRealPoint displacement; + }; + + struct GraphLayoutEdge { + GraphLayoutNode &node1; + GraphLayoutNode &node2; + float weight; + }; + + GraphAutoLayout(); + GraphAutoLayout(std::vector<ParseMatpower::BusData*> busData, std::vector<ParseMatpower::BranchData*> branchData); + ~GraphAutoLayout(); + + void CalculatePositions(int iterations, double scale); + + protected: + void AddLink(size_t index1, size_t index2, float weight = 1.f); + void Compute(size_t iterations); + + std::vector<GraphLayoutNode> m_nodes; + std::vector<GraphLayoutEdge> m_edges; + + std::vector<ParseMatpower::BusData*> m_busData; + std::vector<ParseMatpower::BranchData*> m_branchData; +}; + +#endif // GRAPHAUTOLAYOUT_H diff --git a/Project/HarmCurrent.cpp b/Project/HarmCurrent.cpp new file mode 100644 index 0000000..c9266ec --- /dev/null +++ b/Project/HarmCurrent.cpp @@ -0,0 +1,242 @@ +#include "HarmCurrent.h" + +#include "HarmCurrentForm.h" + +HarmCurrent::HarmCurrent() : Shunt() {} + +HarmCurrent::~HarmCurrent() {} + +HarmCurrent::HarmCurrent(wxString name) : Shunt() { m_electricalData.name = name; } + +Element* HarmCurrent::GetCopy() +{ + HarmCurrent* copy = new HarmCurrent(); + *copy = *this; + return copy; +} + +bool HarmCurrent::AddParent(Element* parent, wxPoint2DDouble position) +{ + if(parent) { + m_parentList.push_back(parent); + parent->AddChild(this); + wxPoint2DDouble parentPt = + parent->RotateAtPosition(position, -parent->GetAngle()); // Rotate click to horizontal position. + parentPt.m_y = parent->GetPosition().m_y; // Centralize on bus. + parentPt = parent->RotateAtPosition(parentPt, parent->GetAngle()); // Rotate back. + + m_position = parentPt + wxPoint2DDouble(0.0, 100.0); // Shifts the position to the down of the bus. + m_width = 40; + m_height = 60; + m_rect = wxRect2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0, m_width, m_height); + + m_pointList.push_back(parentPt); + m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position)); + m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0 - 10.0)); + m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0)); + + m_triangPts.push_back(wxPoint2DDouble(-5, -15)); + m_triangPts.push_back(wxPoint2DDouble(5, -15)); + m_triangPts.push_back(wxPoint2DDouble(0.0, -30.0)); + + m_inserted = true; + + wxRect2DDouble genRect(0, 0, 0, 0); + m_switchRect.push_back(genRect); // Push a general rectangle. + UpdateSwitches(); + + return true; + } + return false; +} + +void HarmCurrent::Draw(wxPoint2DDouble translation, double scale) const +{ + OpenGLColour elementColour; + if(m_online) { + if(m_dynEvent) + elementColour = m_dynamicEventColour; + else + elementColour = m_onlineElementColour; + } else + elementColour = m_offlineElementColour; + + if(m_inserted) { + std::vector<wxPoint2DDouble> arrowPts; + arrowPts.push_back(wxPoint2DDouble(m_position.m_x, m_position.m_y - m_height / 2.0)); + arrowPts.push_back(arrowPts[0] + wxPoint2DDouble(0, 40)); + + if(m_selected) { + glLineWidth(1.5 + m_borderSize * 2.0); + glColor4dv(m_selectionColour.GetRGBA()); + + DrawLine(m_pointList); + + glPushMatrix(); + glTranslated(m_position.m_x, m_position.m_y, 0.0); + glRotated(m_angle, 0.0, 0.0, 1.0); + glTranslated(-m_position.m_x, -m_position.m_y, 0.0); + + DrawCircle(wxPoint2DDouble(m_position.m_x, m_position.m_y - m_height / 2.0 + 20), + 20.0 + (m_borderSize + 1.5) / scale, 20, GL_POLYGON); + + DrawGround(m_position + wxPoint2DDouble(0, 10.0)); + + glPopMatrix(); + + // Draw node selection. + DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON); + } + // Draw Harmonic current source (layer 2). + glLineWidth(1.5); + glColor4dv(elementColour.GetRGBA()); + DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON); + DrawLine(m_pointList); + + DrawSwitches(); + + glPushMatrix(); + glTranslated(m_position.m_x, m_position.m_y, 0.0); + glRotated(m_angle, 0.0, 0.0, 1.0); + glTranslated(-m_position.m_x, -m_position.m_y, 0.0); + + std::vector<wxPoint2DDouble> triangPts; + for(int i = 0; i < 3; i++) { triangPts.push_back(m_triangPts[i] + m_position); } + + glColor4dv(elementColour.GetRGBA()); + glColor4d(1.0, 1.0, 1.0, 1.0); + DrawCircle(wxPoint2DDouble(m_position.m_x, m_position.m_y - m_height / 2.0 + 20), 20, 20, GL_POLYGON); + + glColor4dv(elementColour.GetRGBA()); + DrawCircle(wxPoint2DDouble(m_position.m_x, m_position.m_y - m_height / 2.0 + 20), 20, 20); + DrawTriangle(triangPts); + DrawLine(arrowPts); + DrawGround(m_position + wxPoint2DDouble(0, 10.0)); + + glPopMatrix(); + } +} + +bool HarmCurrent::Contains(wxPoint2DDouble position) const +{ + wxPoint2DDouble ptR = RotateAtPosition(position, -m_angle); + return m_rect.Contains(ptR); +} + +bool HarmCurrent::Intersects(wxRect2DDouble rect) const +{ + return RotatedRectanglesIntersects(m_rect, rect, m_angle, 0.0); +} + +void HarmCurrent::Rotate(bool clockwise) +{ + double rotAngle = m_rotationAngle; + if(!clockwise) rotAngle = -m_rotationAngle; + + m_angle += rotAngle; + if(m_angle >= 360 || m_angle <= -360) m_angle = 0.0; + m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle); + m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle); + UpdateSwitchesPosition(); +} + +bool HarmCurrent::GetContextMenu(wxMenu& menu) +{ + menu.Append(ID_EDIT_ELEMENT, _("Edit Harmonic Current Source")); + GeneralMenuItens(menu); + return true; +} + +wxString HarmCurrent::GetTipText() const +{ + wxString tipText = m_electricalData.name; + + for(unsigned int i = 0; i < m_electricalData.harmonicOrder.size(); ++i) { + tipText += + wxString::Format("\nI%dh = %s %s (%s%s)", m_electricalData.harmonicOrder[i], + StringFromDouble(m_electricalData.injHarmCurrent[i]), + m_electricalData.injHarmCurrentUnit[i] == UNIT_A ? "A" : "p.u.", + StringFromDouble(m_electricalData.injHarmAngle[i]), static_cast<wxString>(L'\u00B0')); + } + + return tipText; +} + +bool HarmCurrent::ShowForm(wxWindow* parent, Element* element) +{ + HarmCurrentForm* harmCurrentForm = new HarmCurrentForm(parent, this); + harmCurrentForm->SetTitle(_("Harmonic Current Source")); + if(harmCurrentForm->ShowModal() == wxID_OK) { + harmCurrentForm->Destroy(); + return true; + } + harmCurrentForm->Destroy(); + return false; +} + +HarmCurrentElectricalData HarmCurrent::GetPUElectricalData(double systemPowerBase, double voltage) +{ + HarmCurrentElectricalData puData = m_electricalData; + double ib = systemPowerBase / (std::sqrt(3.00) * voltage); + for(unsigned int i = 0; i < puData.harmonicOrder.size(); ++i) { + if(puData.injHarmCurrentUnit[i] == UNIT_A) { + puData.injHarmCurrent[i] /= ib; + puData.injHarmCurrentUnit[i] = UNIT_PU; + } + } + return puData; +} + +rapidxml::xml_node<>* HarmCurrent::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) +{ + auto elementNode = XMLParser::AppendNode(doc, elementListNode, "HarmCurrent"); + XMLParser::SetNodeAttribute(doc, elementNode, "ID", m_elementID); + + SaveCADProperties(doc, elementNode); + + auto electricalProp = XMLParser::AppendNode(doc, elementNode, "ElectricalProperties"); + auto isOnline = XMLParser::AppendNode(doc, electricalProp, "IsOnline"); + XMLParser::SetNodeValue(doc, isOnline, m_online); + auto name = XMLParser::AppendNode(doc, electricalProp, "Name"); + XMLParser::SetNodeValue(doc, name, m_electricalData.name); + + auto harmCurrentDataList = XMLParser::AppendNode(doc, electricalProp, "HarmCurrentList"); + for(int i = 0; i < static_cast<int>(m_electricalData.harmonicOrder.size()); i++) { + auto harmCurrentData = XMLParser::AppendNode(doc, harmCurrentDataList, "HarmCurrent"); + XMLParser::SetNodeAttribute(doc, harmCurrentData, "ID", i); + auto order = XMLParser::AppendNode(doc, harmCurrentData, "Order"); + XMLParser::SetNodeValue(doc, order, m_electricalData.harmonicOrder[i]); + auto injCurrent = XMLParser::AppendNode(doc, harmCurrentData, "InjCurrent"); + XMLParser::SetNodeValue(doc, injCurrent, m_electricalData.injHarmCurrent[i]); + XMLParser::SetNodeAttribute(doc, injCurrent, "UnitID", m_electricalData.injHarmCurrentUnit[i]); + auto injHarmAngle = XMLParser::AppendNode(doc, harmCurrentData, "Angle"); + XMLParser::SetNodeValue(doc, injHarmAngle, m_electricalData.injHarmAngle[i]); + } + + return elementNode; +} + +bool HarmCurrent::OpenElement(rapidxml::xml_node<>* elementNode, std::vector<Element*> parentList) +{ + if(!OpenCADProperties(elementNode, parentList)) return false; + + auto electricalProp = elementNode->first_node("ElectricalProperties"); + if(!electricalProp) return false; + + SetOnline(XMLParser::GetNodeValueInt(electricalProp, "IsOnline")); + m_electricalData.name = electricalProp->first_node("Name")->value(); + + auto harmCurrentList = electricalProp->first_node("HarmCurrentList"); + auto harmCurrent = harmCurrentList->first_node("HarmCurrent"); + while(harmCurrent) { + m_electricalData.harmonicOrder.push_back(XMLParser::GetNodeValueInt(harmCurrent, "Order")); + m_electricalData.injHarmCurrent.push_back(XMLParser::GetNodeValueDouble(harmCurrent, "InjCurrent")); + m_electricalData.injHarmCurrentUnit.push_back( + static_cast<ElectricalUnit>(XMLParser::GetAttributeValueInt(harmCurrent, "InjCurrent", "UnitID"))); + m_electricalData.injHarmAngle.push_back(XMLParser::GetNodeValueDouble(harmCurrent, "Angle")); + harmCurrent = harmCurrent->next_sibling("HarmCurrent"); + } + + m_inserted = true; + return true; +} diff --git a/Project/HarmCurrent.h b/Project/HarmCurrent.h new file mode 100644 index 0000000..c01f150 --- /dev/null +++ b/Project/HarmCurrent.h @@ -0,0 +1,51 @@ +#ifndef HARMCURRENT_H +#define HARMCURRENT_H + +#include "Shunt.h" + +class HarmCurrentForm; + +struct HarmCurrentElectricalData { + wxString name; + std::vector<int> harmonicOrder; + std::vector<double> injHarmCurrent; + std::vector<ElectricalUnit> injHarmCurrentUnit; + std::vector<double> injHarmAngle; +}; + +/** + * @class HarmCurrent + * @author Thales Lima Oliveira <thales@ufu.br> + * @date 22/04/2019 + * @brief Shunt Harmonic Corrent Source. + * @file HarmCurrent.h + */ +class HarmCurrent : public Shunt +{ + public: + HarmCurrent(); + HarmCurrent(wxString name); + ~HarmCurrent(); + + virtual Element* GetCopy(); + virtual bool AddParent(Element* parent, wxPoint2DDouble position); + virtual void Draw(wxPoint2DDouble translation, double scale) const; + virtual bool Contains(wxPoint2DDouble position) const; + virtual bool Intersects(wxRect2DDouble rect) const; + virtual void Rotate(bool clockwise = true); + virtual bool GetContextMenu(wxMenu& menu); + virtual wxString GetTipText() const; + virtual bool ShowForm(wxWindow* parent, Element* element); + virtual HarmCurrentElectricalData GetElectricalData() { return m_electricalData; } + virtual HarmCurrentElectricalData GetPUElectricalData(double systemPowerBase, double voltage); + virtual void SetElectricalData(HarmCurrentElectricalData electricalData) { m_electricalData = electricalData; } + + virtual rapidxml::xml_node<>* SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode); + virtual bool OpenElement(rapidxml::xml_node<>* elementNode, std::vector<Element*> parentList); + + protected: + std::vector<wxPoint2DDouble> m_triangPts; + HarmCurrentElectricalData m_electricalData; +}; + +#endif // HARMCURRENT_H diff --git a/Project/HarmCurrentForm.cpp b/Project/HarmCurrentForm.cpp new file mode 100644 index 0000000..812124c --- /dev/null +++ b/Project/HarmCurrentForm.cpp @@ -0,0 +1,172 @@ +#include "HarmCurrent.h" +#include "HarmCurrentForm.h" + +HarmCurrentForm::HarmCurrentForm(wxWindow* parent, HarmCurrent* harmCurrent) : HarmCurrentFormBase(parent) +{ + m_parent = parent; + m_harmCurrent = harmCurrent; + + m_listCtrlHarmCurrentList->AppendColumn(_("Order")); + m_listCtrlHarmCurrentList->AppendColumn(_("Current")); + m_listCtrlHarmCurrentList->AppendColumn(_("Unit")); + m_listCtrlHarmCurrentList->AppendColumn(_("Angle")); + + auto data = m_harmCurrent->GetElectricalData(); + m_textCtrlName->SetValue(data.name); + for(unsigned int i = 0; i < data.harmonicOrder.size(); ++i) { + long item = m_listCtrlHarmCurrentList->InsertItem(m_maxID, wxString::Format("%d", data.harmonicOrder[i])); + m_listCtrlHarmCurrentList->SetItem(item, 1, m_harmCurrent->StringFromDouble(data.injHarmCurrent[i], 1)); + m_listCtrlHarmCurrentList->SetItem(item, 2, data.injHarmCurrentUnit[i] == UNIT_A ? _("A") : _("p.u.")); + m_listCtrlHarmCurrentList->SetItem(item, 3, m_harmCurrent->StringFromDouble(data.injHarmAngle[i], 1)); + m_maxID++; + } + + SetSize(GetBestSize()); + Layout(); +} + +HarmCurrentForm::~HarmCurrentForm() {} + +void HarmCurrentForm::OnCancelButtonClick(wxCommandEvent& event) { EndModal(wxID_CANCEL); } +void HarmCurrentForm::OnOKButtonClick(wxCommandEvent& event) +{ + if(ValidateData()) EndModal(wxID_OK); +} + +bool HarmCurrentForm::ValidateData() +{ + wxString name = m_textCtrlName->GetValue(); + std::vector<int> harmonicOrder; + std::vector<double> injHarmCurrent; + std::vector<ElectricalUnit> injHarmCurrentUnit; + std::vector<double> injHarmAngle; + + long item = -1; + while(true) { + item = m_listCtrlHarmCurrentList->GetNextItem(item, wxLIST_NEXT_ALL); + if(item == -1) break; + harmonicOrder.push_back(wxAtoi(m_listCtrlHarmCurrentList->GetItemText(item, 0))); + double injCurrent = 0.0; + if(!m_listCtrlHarmCurrentList->GetItemText(item, 1).ToDouble(&injCurrent)) { return false; } + injHarmCurrent.push_back(injCurrent); + if(m_listCtrlHarmCurrentList->GetItemText(item, 2) == "A") + injHarmCurrentUnit.push_back(UNIT_A); + else + injHarmCurrentUnit.push_back(UNIT_PU); + double injCAngle = 0.0; + if(!m_listCtrlHarmCurrentList->GetItemText(item, 3).ToDouble(&injCAngle)) { return false; } + injHarmAngle.push_back(injCAngle); + } + + auto data = m_harmCurrent->GetElectricalData(); + data.name = name; + data.harmonicOrder = harmonicOrder; + data.injHarmCurrent = injHarmCurrent; + data.injHarmCurrentUnit = injHarmCurrentUnit; + data.injHarmAngle = injHarmAngle; + m_harmCurrent->SetElectricalData(data); + + return true; +} +void HarmCurrentForm::OnAddButtonClick(wxCommandEvent& event) +{ + wxString order = m_pgPropHarmOrder->GetValue().GetString(); // Get order in properties + // Look if already have the order in the list + long item = -1; + bool findOrder = false; + while(true) { + item = m_listCtrlHarmCurrentList->GetNextItem(item, wxLIST_NEXT_ALL); + if(item == -1) break; + if(m_listCtrlHarmCurrentList->GetItemText(item, 0) == order) { + findOrder = true; + break; + } + } + + if(!findOrder) item = m_listCtrlHarmCurrentList->InsertItem(m_maxID, m_pgPropHarmOrder->GetValue().GetString()); + m_listCtrlHarmCurrentList->SetItem(item, 1, m_pgPropHarmCurrent->GetValue().GetString()); + m_listCtrlHarmCurrentList->SetItem(item, 2, m_pgPropUnit->GetValue().GetInteger() == 0 ? _("A") : _("p.u.")); + m_listCtrlHarmCurrentList->SetItem(item, 3, m_pgPropHarmAngle->GetValue().GetString()); + if(!findOrder) m_maxID++; + + SortList(); +} +void HarmCurrentForm::OnRemoveButtonClick(wxCommandEvent& event) +{ + std::vector<long> itemList; + long item = -1; + while(true) { + item = m_listCtrlHarmCurrentList->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + if(item == -1) break; + itemList.push_back(item); + } + for(int i = static_cast<int>(itemList.size()) - 1; i >= 0; --i) { + m_listCtrlHarmCurrentList->DeleteItem(itemList[i]); + } +} + +void HarmCurrentForm::SortList() +{ + // Get data, sort and recreate list. + + std::vector<int> harmonicOrder; + std::vector<double> injHarmCurrent; + std::vector<ElectricalUnit> injHarmCurrentUnit; + std::vector<double> injHarmAngle; + + // Get data + long item = -1; + while(true) { + item = m_listCtrlHarmCurrentList->GetNextItem(item, wxLIST_NEXT_ALL); + if(item == -1) break; + harmonicOrder.push_back(wxAtoi(m_listCtrlHarmCurrentList->GetItemText(item, 0))); + double injCurrent = 0.0; + if(!m_listCtrlHarmCurrentList->GetItemText(item, 1).ToDouble(&injCurrent)) return; + injHarmCurrent.push_back(injCurrent); + if(m_listCtrlHarmCurrentList->GetItemText(item, 2) == "A") + injHarmCurrentUnit.push_back(UNIT_A); + else + injHarmCurrentUnit.push_back(UNIT_PU); + double injCAngle = 0.0; + if(!m_listCtrlHarmCurrentList->GetItemText(item, 3).ToDouble(&injCAngle)) return; + injHarmAngle.push_back(injCAngle); + } + + // Sort + for(unsigned int i = 0; i < harmonicOrder.size(); ++i) { + for(unsigned int j = 0; j < harmonicOrder.size(); ++j) { + if(harmonicOrder[i] < harmonicOrder[j]) { + int h = harmonicOrder[j]; + harmonicOrder[j] = harmonicOrder[i]; + harmonicOrder[i] = h; + + double current = injHarmCurrent[j]; + injHarmCurrent[j] = injHarmCurrent[i]; + injHarmCurrent[i] = current; + + auto unit = injHarmCurrentUnit[j]; + injHarmCurrentUnit[j] = injHarmCurrentUnit[i]; + injHarmCurrentUnit[i] = unit; + + double angle = injHarmAngle[j]; + injHarmAngle[j] = injHarmAngle[i]; + injHarmAngle[i] = angle; + } + } + } + + // Clear all and reconstruct list + m_listCtrlHarmCurrentList->ClearAll(); + m_listCtrlHarmCurrentList->AppendColumn(_("Order")); + m_listCtrlHarmCurrentList->AppendColumn(_("Current")); + m_listCtrlHarmCurrentList->AppendColumn(_("Unit")); + m_listCtrlHarmCurrentList->AppendColumn(_("Angle")); + m_maxID = 0; + for(unsigned int i = 0; i < harmonicOrder.size(); ++i) { + long item = m_listCtrlHarmCurrentList->InsertItem(m_maxID, wxString::Format("%d", harmonicOrder[i])); + m_listCtrlHarmCurrentList->SetItem(item, 1, m_harmCurrent->StringFromDouble(injHarmCurrent[i], 1)); + m_listCtrlHarmCurrentList->SetItem(item, 2, injHarmCurrentUnit[i] == UNIT_A ? _("A") : _("p.u.")); + m_listCtrlHarmCurrentList->SetItem(item, 3, m_harmCurrent->StringFromDouble(injHarmAngle[i], 1)); + m_maxID++; + } +} diff --git a/Project/HarmCurrentForm.h b/Project/HarmCurrentForm.h new file mode 100644 index 0000000..87def26 --- /dev/null +++ b/Project/HarmCurrentForm.h @@ -0,0 +1,25 @@ +#ifndef HARMCURRENTFORM_H +#define HARMCURRENTFORM_H +#include "ElementFormBase.h" + +class HarmCurrent; + +class HarmCurrentForm : public HarmCurrentFormBase +{ + public: + HarmCurrentForm(wxWindow* parent, HarmCurrent* harmCurrent); + virtual ~HarmCurrentForm(); + virtual bool ValidateData(); + virtual void SortList(); + + protected: + virtual void OnAddButtonClick(wxCommandEvent& event); + virtual void OnRemoveButtonClick(wxCommandEvent& event); + virtual void OnCancelButtonClick(wxCommandEvent& event); + virtual void OnOKButtonClick(wxCommandEvent& event); + + wxWindow* m_parent; + HarmCurrent* m_harmCurrent = NULL; + int m_maxID = 0; +}; +#endif // HARMCURRENTFORM_H diff --git a/Project/ImportForm.cpp b/Project/ImportForm.cpp index 9a8dc96..6243a71 100644 --- a/Project/ImportForm.cpp +++ b/Project/ImportForm.cpp @@ -28,6 +28,8 @@ #include "Transformer.h" #include "Workspace.h" +#include "GraphAutoLayout.h" + ImportForm::ImportForm(wxWindow* parent, Workspace* workspace) : ImportFormBase(parent) { SetInitialSize(); @@ -58,6 +60,31 @@ void ImportForm::OnButtonOKClick(wxCommandEvent& event) bool ImportForm::ImportSelectedFiles() { + switch(m_notebook->GetSelection()) { + case 0: { + return ImportCEPELFiles(); + break; + } + case 1: { + return ImportMatpowerFiles(); + break; + } + default: + break; + } + return false; +} + +Bus* ImportForm::GetBusFromID(std::vector<Bus*> busList, int id) +{ + for(auto it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) { + if((*it)->GetID() == id) return *it; + } + return NULL; +} + +bool ImportForm::ImportCEPELFiles() +{ ParseAnarede parseAnarede(m_filePickerANAREDELST->GetFileName(), m_filePickerANAREDEPWF->GetFileName()); if(!parseAnarede.Parse()) return false; double scale = 1.25; @@ -374,9 +401,8 @@ bool ImportForm::ImportSelectedFiles() wxPoint2DDouble nodePos2 = parseAnarede.GetNodePositionFromID(parentBus2, scale, (*it)->busConnectionNode[1].second); - ParseAnarede::BranchData* branchData = - parseAnarede.GetBranchDataFromID((*it)->electricalID, (*it)->busConnectionID[0].second, - (*it)->busConnectionID[1].second, ANA_LINE); + ParseAnarede::BranchData* branchData = parseAnarede.GetBranchDataFromID( + (*it)->electricalID, (*it)->busConnectionID[0].second, (*it)->busConnectionID[1].second, ANA_LINE); Line* line = new Line(); line->SetID((*it)->id); @@ -505,12 +531,317 @@ bool ImportForm::ImportSelectedFiles() return true; } -Bus* ImportForm::GetBusFromID(std::vector<Bus*> busList, int id) +bool ImportForm::ImportMatpowerFiles() { + ParseMatpower parseMatpower(m_filePickerMatpowerM->GetFileName()); + if(!parseMatpower.Parse()) return false; + + double mvaBasePower = parseMatpower.GetMVAPowerBase(); + auto simProp = m_workspace->GetProperties()->GetSimulationPropertiesData(); + simProp.basePower = mvaBasePower; + m_workspace->GetProperties()->SetSimulationPropertiesData(simProp); + + std::vector<Element*> elementList; + + std::vector<Bus*> busList; + std::vector<SyncGenerator*> syncGeneratorList; + std::vector<SyncMotor*> syncMotorList; + std::vector<Load*> loadList; + std::vector<Inductor*> indList; + std::vector<Capacitor*> capList; + std::vector<IndMotor*> indMotorList; + std::vector<Transformer*> transformerList; + std::vector<Line*> lineList; + + int iterations = wxAtoi(m_textCtrlIterations->GetValue()); + double scale; + if(!m_textCtrlScale->GetValue().ToDouble(&scale)) return false; + + // Automatically calculate buses positions using weighted graph to determine the layout + GraphAutoLayout gal(parseMatpower.GetBusData(), parseMatpower.GetBranchData()); + gal.CalculatePositions(iterations, scale); + + // Fill bus list + auto busDataList = parseMatpower.GetBusData(); + for(auto it = busDataList.begin(), itEnd = busDataList.end(); it != itEnd; ++it) { + ParseMatpower::BusData* busData = *it; + + Bus* bus = new Bus(busData->busPosition); + bus->SetID((*it)->id); + + // Electrical data + auto data = bus->GetElectricalData(); + if(busData) { + data.number = busData->id; + data.name = busData->busName; + switch(busData->type) { + case 3: { + data.isVoltageControlled = true; + data.slackBus = true; + } break; + case 1: { + data.isVoltageControlled = false; + data.slackBus = false; + } break; + case 2: { + data.isVoltageControlled = true; + data.slackBus = false; + } break; + default: { + return false; + } break; + } + data.voltage = std::complex<double>(busData->voltage * std::cos(wxDegToRad(busData->angle)), + busData->voltage * std::sin(wxDegToRad(busData->angle))); + data.controlledVoltage = busData->voltage; + // TODO: Nominal voltage are getting errors (e.g. 118bus.m) + // if(busData->baseVoltage > 1e-3) { data.nominalVoltage = busData->baseVoltage; } + } else + return false; + + bus->SetElectricalData(data); + busList.push_back(bus); + } + // Fill lines list + auto branchDataList = parseMatpower.GetBranchData(); + int lineID = 0; + int transformerID = 0; + for(auto it = branchDataList.begin(), itEnd = branchDataList.end(); it != itEnd; ++it) { + ParseMatpower::BranchData* branchData = *it; + Bus* fstParentBus = GetBusFromID(busList, branchData->busConnections.first); + Bus* sndParentBus = GetBusFromID(busList, branchData->busConnections.second); + if(branchData->tap > 1e-3) { // Transformer + Transformer* transformer = new Transformer(); + transformer->SetID(transformerID); + transformer->AddParent(fstParentBus, fstParentBus->GetPosition()); + transformer->AddParent(sndParentBus, sndParentBus->GetPosition()); + + auto data = transformer->GetElectricalData(); + data.resistance = branchData->resistance; + data.indReactance = branchData->indReactance; + data.turnsRatio = branchData->tap; + data.phaseShift = branchData->phaseShift; + data.name = + wxString::Format("%s %u (%s - %s)", _("Transfomer"), transformerList.size() + 1, + fstParentBus->GetElectricalData().name, sndParentBus->GetElectricalData().name); + + transformer->SetElectricaData(data); + + transformer->SetOnline(branchData->isOnline); + + transformerList.push_back(transformer); + transformerID++; + } else { // Line + Line* line = new Line(); + line->SetID(lineID); + line->AddParent(fstParentBus, fstParentBus->GetPosition()); + line->AddParent(sndParentBus, sndParentBus->GetPosition()); + + auto data = line->GetElectricalData(); + data.resistance = branchData->resistance; + data.indReactance = branchData->indReactance; + data.capSusceptance = branchData->capSusceptance; + data.name = + wxString::Format("%s %u (%s - %s)", _("Line"), lineList.size() + 1, + fstParentBus->GetElectricalData().name, sndParentBus->GetElectricalData().name); + + line->SetElectricalData(data); + + line->SetOnline(branchData->isOnline); + + lineList.push_back(line); + lineID++; + } + } + + // Connect Generators + auto genDataList = parseMatpower.GetGenData(); + int genID = 0; + for(auto it = genDataList.begin(), itEnd = genDataList.end(); it != itEnd; ++it) { + SyncGenerator* generator = new SyncGenerator(); + ParseMatpower::GenData* genData = *it; + generator->SetID(genID); + + Bus* parentBus = GetBusFromID(busList, (*it)->busID); + generator->AddParent(parentBus, parentBus->GetPosition()); + + auto data = generator->GetElectricalData(); + data.name = wxString::Format("%s %u (%s)", _("Machine"), syncGeneratorList.size() + 1, + parentBus->GetElectricalData().name); + data.activePower = genData->pg; + data.reactivePower = genData->qg; + data.maxReactive = genData->maxReactivePower; + data.minReactive = genData->minReactivePower; + data.nominalPower = genData->baseMVA; + generator->SetElectricalData(data); + + syncGeneratorList.push_back(generator); + + genID++; + } + + // Connect Loads and capacitors for(auto it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) { - if((*it)->GetID() == id) return *it; + Bus* bus = *it; + ParseMatpower::BusData* busData = parseMatpower.GetBusDataFromID(bus->GetID()); + if(busData->pd > 1e-3 || busData->qd > 1e-3) { + // The bus have load + Load* load = new Load(); + + load->AddParent(bus, bus->GetPosition()); + + auto data = load->GetElectricalData(); + data.name = wxString::Format("%s %u (%s)", _("Load"), loadList.size() + 1, busData->busName); + data.activePower = busData->pd; + data.reactivePower = busData->qd; + load->SetElectricalData(data); + + loadList.push_back(load); + } + if(std::abs(busData->gs) > 1e-3) { + // The bus have constant impedance load + Load* load = new Load(); + + load->AddParent(bus, bus->GetPosition()); + + auto data = load->GetElectricalData(); + data.name = wxString::Format("%s %u (%s)", _("Load"), loadList.size() + 1, busData->busName); + data.activePower = busData->gs; + data.reactivePower = busData->bs; + data.loadType = CONST_IMPEDANCE; + load->SetElectricalData(data); + + loadList.push_back(load); + } else if(std::abs(busData->bs) > 1e-3) { + // The bus have capacitor or inductor connected + if(busData->bs < 1e-3) { + // Inductor + Inductor* inductor = new Inductor(); + + inductor->AddParent(bus, bus->GetPosition()); + + auto data = inductor->GetElectricalData(); + data.name = wxString::Format("%s %u (%s)", _("Inductor"), indList.size() + 1, busData->busName); + data.reactivePower = std::abs(busData->bs); + inductor->SetElectricalData(data); + + indList.push_back(inductor); + } else { + // Capacitor + Capacitor* capacitor = new Capacitor(); + + capacitor->AddParent(bus, bus->GetPosition()); + + auto data = capacitor->GetElectricalData(); + data.name = wxString::Format("%s %u (%s)", _("Capacitor"), capList.size() + 1, busData->busName); + data.reactivePower = std::abs(busData->bs); + capacitor->SetElectricalData(data); + + capList.push_back(capacitor); + } + } } - return NULL; + + // Adjust generators positions + for(auto it = syncGeneratorList.begin(), itEnd = syncGeneratorList.end(); it != itEnd; ++it) { + SyncGenerator* generator = *it; + generator->StartMove(generator->GetPosition()); + // TODO: Check why node position have 100 pts offset in x axis + generator->MoveNode(generator->GetParentList()[0], + generator->GetParentList()[0]->GetPosition() - wxPoint2DDouble(140, 0)); + generator->Move(generator->GetParentList()[0]->GetPosition() - wxPoint2DDouble(40, 100)); + generator->Rotate(); + generator->Rotate(); + } + + // Adjust loads positions + for(auto it = loadList.begin(), itEnd = loadList.end(); it != itEnd; ++it) { + Load* load = *it; + // Move load to the left of the bus + load->StartMove(wxPoint2DDouble(0, 0)); + load->MoveNode(load->GetParentList()[0], wxPoint2DDouble(-load->GetParentList()[0]->GetWidth() / 2 + 10, 0)); + load->Move(wxPoint2DDouble(-load->GetParentList()[0]->GetWidth() / 2 + 10, 0)); + } + + // Adjust capacitors positions + for(auto it = capList.begin(), itEnd = capList.end(); it != itEnd; ++it) { + Capacitor* capacitor = *it; + // Move capacitor to the right of the bus capacitor->StartMove(wxPoint2DDouble(0, 0)); + capacitor->StartMove(wxPoint2DDouble(0, 0)); + capacitor->MoveNode(capacitor->GetParentList()[0], + wxPoint2DDouble(capacitor->GetParentList()[0]->GetWidth() / 2 - 20, 0)); + capacitor->Move(wxPoint2DDouble(capacitor->GetParentList()[0]->GetWidth() / 2 - 20, 0)); + } + + // Adjust inductors positions + for(auto it = indList.begin(), itEnd = indList.end(); it != itEnd; ++it) { + Inductor* inductor = *it; + // Move indutor to the far right of the bus inductor->StartMove(wxPoint2DDouble(0, 0)); + inductor->StartMove(wxPoint2DDouble(0, 0)); + inductor->MoveNode(inductor->GetParentList()[0], + wxPoint2DDouble(inductor->GetParentList()[0]->GetWidth() / 2 - 10, 0)); + inductor->Move(wxPoint2DDouble(inductor->GetParentList()[0]->GetWidth() / 2 + 10, 0)); + } + + // Adjust branches + for(auto it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) { + Bus* bus = *it; + int numberOfConnectedBranches = 0; + std::vector<Line*> linesConnected; + std::vector<Transformer*> transformersConnected; + + std::vector<Element*> childElements = bus->GetChildList(); + for(unsigned int i = 0; i < childElements.size(); ++i) { + if(Line* line = dynamic_cast<Line*>(childElements[i])) { + linesConnected.push_back(line); + numberOfConnectedBranches++; + } else if(Transformer* transformer = dynamic_cast<Transformer*>(childElements[i])) { + transformersConnected.push_back(transformer); + numberOfConnectedBranches++; + } + } + /*for(auto itc = bus->GetChildList().begin(), itEnd = bus->GetChildList().end(); itc != itEnd; ++itc) { + if(Line* line = dynamic_cast<Line*>(*itc)) { + linesConnected.push_back(line); + numberOfConnectedLines++; + } + }*/ + + if(numberOfConnectedBranches > 0) { + double dx = (bus->GetWidth() - 30) / (static_cast<double>(numberOfConnectedBranches + 1)); + int cont = 0; + for(unsigned int i = 0; i < linesConnected.size(); ++i) { + Line* lineToMove = linesConnected[i]; + // Line nove move in x axis + wxPoint2DDouble newPos(dx * static_cast<double>(i + 1), 0); + lineToMove->StartMove(bus->GetPosition()); + lineToMove->MoveNode(bus, bus->GetPosition() - wxPoint2DDouble(bus->GetWidth() / 2 - 10, 0) + newPos); + cont++; + } + for(unsigned int i = 0; i < transformersConnected.size(); ++i) { + Transformer* trafoToMove = transformersConnected[i]; + wxPoint2DDouble newPos(dx * static_cast<double>(i + cont + 1), 0); + trafoToMove->StartMove(bus->GetPosition()); + trafoToMove->MoveNode(bus, bus->GetPosition() - wxPoint2DDouble(bus->GetWidth() / 2 - 10, 0) + newPos); + trafoToMove->SetBestPositionAndRotation(); + } + } + } + + for(auto it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) elementList.push_back(*it); + for(auto it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) elementList.push_back(*it); + for(auto it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) elementList.push_back(*it); + for(auto it = syncGeneratorList.begin(), itEnd = syncGeneratorList.end(); it != itEnd; ++it) + elementList.push_back(*it); + for(auto it = syncMotorList.begin(), itEnd = syncMotorList.end(); it != itEnd; ++it) elementList.push_back(*it); + for(auto it = loadList.begin(), itEnd = loadList.end(); it != itEnd; ++it) elementList.push_back(*it); + for(auto it = indList.begin(), itEnd = indList.end(); it != itEnd; ++it) elementList.push_back(*it); + for(auto it = capList.begin(), itEnd = capList.end(); it != itEnd; ++it) elementList.push_back(*it); + for(auto it = indMotorList.begin(), itEnd = indMotorList.end(); it != itEnd; ++it) elementList.push_back(*it); + + m_workspace->SetElementList(elementList); + + return true; } ParseAnarede::ParseAnarede(wxFileName lstFile, wxFileName pwfFile) @@ -1039,4 +1370,163 @@ void ParseAnarede::ClearData() if(*it) delete *it; } m_indElementData.clear(); +} + +ParseMatpower::ParseMatpower(wxFileName mFile) { m_mFile = mFile; } + +void ParseMatpower::ClearData() +{ + // Clear data to avoid memory leak + for(auto it = m_branchData.begin(), itEnd = m_branchData.end(); it != itEnd; ++it) { + if(*it) delete *it; + } + m_branchData.clear(); + for(auto it = m_branchData.begin(), itEnd = m_branchData.end(); it != itEnd; ++it) { + if(*it) delete *it; + } + m_branchData.clear(); + for(auto it = m_genData.begin(), itEnd = m_genData.end(); it != itEnd; ++it) { + if(*it) delete *it; + } + m_genData.clear(); +} + +bool ParseMatpower::Parse() +{ + wxTextFile mFile(m_mFile.GetFullPath()); + if(!mFile.Open()) return false; + + // Parse M file + wxString fileTxt = ""; + for(wxString line = mFile.GetFirstLine(); !mFile.Eof(); line = mFile.GetNextLine()) { + // Current line + if(line.Trim()[0] != '%') { // Check if the line is commented (with %) + // Parse data: + if(line.Find("mpc.baseMVA") != wxNOT_FOUND) { // Found baseMVA + if(!line.AfterFirst('=').BeforeFirst(';').ToCDouble(&m_mvaBase)) return false; // No Trim() needed? + } + if(line.Find("mpc.bus ") != wxNOT_FOUND) { // Found bus + wxStringTokenizer busStrTok = GetMFileTokenData(mFile, line); + while(busStrTok.HasMoreTokens()) { + BusData* busData = new BusData(); + wxString busDataStr = busStrTok.GetNextToken(); + char tokenChar = '\t'; + if(busDataStr.Find('\t') == wxNOT_FOUND) { tokenChar = ' '; } + // Tokenize using tabulation or space (each branch data) + wxStringTokenizer busDataStrTok(busDataStr, tokenChar); + + busData->id = wxAtoi(busDataStrTok.GetNextToken()); // Bus number + busData->type = wxAtoi(busDataStrTok.GetNextToken()); // Bus type + if(!busDataStrTok.GetNextToken().ToCDouble(&busData->pd)) return false; // Real power demand + if(!busDataStrTok.GetNextToken().ToCDouble(&busData->qd)) return false; // Reactive power demand + if(!busDataStrTok.GetNextToken().ToCDouble(&busData->gs)) return false; // Shunt condutance + if(!busDataStrTok.GetNextToken().ToCDouble(&busData->bs)) return false; // Shunt susceptance + busData->area = wxAtoi(busDataStrTok.GetNextToken()); // Bus area + if(!busDataStrTok.GetNextToken().ToCDouble(&busData->voltage)) return false; // Bus abs voltage + if(!busDataStrTok.GetNextToken().ToCDouble(&busData->angle)) return false; // Angle of voltage + if(!busDataStrTok.GetNextToken().ToCDouble(&busData->baseVoltage)) return false; // Base Voltage + + m_busData.push_back(busData); // Save new bus data at vector + } + } + if(line.Find("mpc.gen ") != wxNOT_FOUND) { // Found generator + wxStringTokenizer genStrTok = GetMFileTokenData(mFile, line); + while(genStrTok.HasMoreTokens()) { + GenData* genData = new GenData(); + wxString genDataStr = genStrTok.GetNextToken(); + char tokenChar = '\t'; + if(genDataStr.Find('\t') == wxNOT_FOUND) { tokenChar = ' '; } + // Tokenize using tabulation or space (each branch data) + wxStringTokenizer genDataStrTok(genDataStr, tokenChar); + genData->busID = wxAtoi(genDataStrTok.GetNextToken()); // Bus number + if(!genDataStrTok.GetNextToken().ToCDouble(&genData->pg)) return false; // Real power output + if(!genDataStrTok.GetNextToken().ToCDouble(&genData->qg)) return false; // Reative power output + if(!genDataStrTok.GetNextToken().ToCDouble(&genData->maxReactivePower)) + return false; // Maximum reactive power (MVAr) + if(!genDataStrTok.GetNextToken().ToCDouble(&genData->minReactivePower)) + return false; // Minumum reactive power (MVAr) + genDataStrTok.GetNextToken(); // Voltage magnitude setpoint (p.u.), skip + if(!genDataStrTok.GetNextToken().ToCDouble(&genData->baseMVA)) return false; // Power base (MVA) + double machineStatus = 0; + if(!genDataStrTok.GetNextToken().ToCDouble(&machineStatus)) + return false; // Machine status (> 0 = machine in-service; <= 0 = machine out-of-service) + genData->isOnline = machineStatus > 1e-3 ? true : false; + + m_genData.push_back(genData); + } + } + if(line.Find("mpc.branch") != wxNOT_FOUND) { // Found branch + wxStringTokenizer branchStrTok = GetMFileTokenData(mFile, line); + while(branchStrTok.HasMoreTokens()) { + BranchData* branchData = new BranchData(); + wxString branchDataStr = branchStrTok.GetNextToken(); + char tokenChar = '\t'; + if(branchDataStr.Find('\t') == wxNOT_FOUND) { tokenChar = ' '; } + // Tokenize using tabulation or space (each branch data) + wxStringTokenizer branchDataStrTok(branchDataStr, tokenChar); + + int fromBus = wxAtoi(branchDataStrTok.GetNextToken()); // From bus number + int toBus = wxAtoi(branchDataStrTok.GetNextToken()); // To bus number + branchData->busConnections = std::make_pair(fromBus, toBus); + if(!branchDataStrTok.GetNextToken().ToCDouble(&branchData->resistance)) return false; // Resistance + if(!branchDataStrTok.GetNextToken().ToCDouble(&branchData->indReactance)) + return false; // Reactance + if(!branchDataStrTok.GetNextToken().ToCDouble(&branchData->capSusceptance)) + return false; // Line charging susceptance + branchDataStrTok.GetNextToken(); // MVA rating A, skip + branchDataStrTok.GetNextToken(); // MVA rating B, skip + branchDataStrTok.GetNextToken(); // MVA rating C, skip + if(!branchDataStrTok.GetNextToken().ToCDouble(&branchData->tap)) return false; // TAP + if(!branchDataStrTok.GetNextToken().ToCDouble(&branchData->phaseShift)) + return false; // Transformer phase-shift angle + double branchStatus = 0; + if(!branchDataStrTok.GetNextToken().ToCDouble(&branchStatus)) + return false; // Branch status (> 0 = machine in-service; <= 0 = machine out-of-service) + branchData->isOnline = branchStatus > 1e-3 ? true : false; + + m_branchData.push_back(branchData); + } + } + if(line.Find("mpc.bus_name") != wxNOT_FOUND) { // Found buses names + wxString dataStr = ""; + while(line.Find('}', true) == wxNOT_FOUND) { // Concatenate all lines until find ']' + dataStr += line; + line = mFile.GetNextLine(); + } + dataStr += line; + dataStr = dataStr.AfterFirst('{').BeforeFirst('}'); // Get only the element data + wxStringTokenizer dataStrTok(dataStr, ";"); // Tokenize using ';' char (one element data) + for(auto it = m_busData.begin(), itEnd = m_busData.end(); it != itEnd; ++it) { + if(dataStrTok.HasMoreTokens()) + (*it)->busName = dataStrTok.GetNextToken().AfterFirst('\'').BeforeFirst('\''); + } + } + } + } + // Last line + + return true; +} + +wxStringTokenizer ParseMatpower::GetMFileTokenData(wxTextFile& mFile, wxString currentLine) +{ + wxString dataStr = ""; + while(currentLine.Find(']', true) == wxNOT_FOUND) { // Concatenate all lines until find ']' + dataStr += currentLine; + if(currentLine.Find("mpc") == wxNOT_FOUND && currentLine.Find(';') == wxNOT_FOUND) dataStr += ';'; + currentLine = mFile.GetNextLine(); + } + dataStr += currentLine + ";"; + if(currentLine.Find(';') == wxNOT_FOUND) dataStr += ';'; + dataStr = dataStr.AfterFirst('[').BeforeFirst(']'); // Get only the element data + wxStringTokenizer dataStrTok(dataStr, ';'); // Tokenize using ';' char (one element data) + return dataStrTok; +} + +ParseMatpower::BusData* ParseMatpower::GetBusDataFromID(int id) +{ + for(auto it = m_busData.begin(), itEnd = m_busData.end(); it != itEnd; ++it) { + if((*it)->id == id) return *it; + } + return NULL; }
\ No newline at end of file diff --git a/Project/ImportForm.h b/Project/ImportForm.h index 280396b..b4643a5 100644 --- a/Project/ImportForm.h +++ b/Project/ImportForm.h @@ -23,7 +23,9 @@ #include <wx/geometry.h> #include <wx/msgdlg.h> #include <wx/textfile.h> +#include <wx/tokenzr.h> #include <bitset> +#include <complex> class Workspace; class Bus; @@ -38,6 +40,8 @@ class Transformer; class Line; class PropertiesData; +class GraphAutoLayout; + /** * @class ImportForm * @author Thales Lima Oliveira <thales@ufu.br> @@ -57,6 +61,8 @@ class ImportForm : public ImportFormBase virtual void OnButtonCancelClick(wxCommandEvent& event); virtual void OnButtonOKClick(wxCommandEvent& event); bool ImportSelectedFiles(); + bool ImportCEPELFiles(); + bool ImportMatpowerFiles(); Bus* GetBusFromID(std::vector<Bus*> busList, int id); Workspace* m_workspace = NULL; @@ -207,4 +213,67 @@ class ParseAnarede double m_mvaBase = 100.0; }; +class ParseMatpower +{ + public: + struct BusData { + int id = 0; /**< Bus electrical ID */ + int type = 0; /**< Bus Type: 1 = PQ; 2 = PV; 3 = Ref.; 4 = isolated */ + double pd = 0.0; /**< Real power demand (MW) */ + double qd = 0.0; /**< Reactive power demand (MVAr) */ + double gs = 0.0; /**< Shunt condutance (MW, V = 1.0 p.u.) */ + double bs = 0.0; /**< Shunt susceptance (MVAr, V = 1.0 p.u.). Positive for capacitor, negative for inductor? */ + int area = 0; /**< Bus area */ + double voltage = 1.0; /**< Bus abs voltage (controlled value for PV and Ref. types) */ + double angle = 0.0; /**< Angle of voltage */ + double baseVoltage = 138; /**< Base voltage (kV)*/ + wxString busName = "Bus"; /**< Bus name */ + wxPoint2DDouble busPosition = wxPoint2DDouble(0,0); /**< Bus position */ + }; + struct GenData { + int busID = 0; /**< Bus electrical ID */ + double pg = 0.0; /**< Real power output (MW) */ + double qg = 0.0; /**< Reactive power output (MVAr) */ + double maxReactivePower = 99999.0; /**< Maximum reactive power (MVAr) */ + double minReactivePower = -9999.0; /**< Minimal reactive power (MVAr) */ + double baseMVA = 100; /**< Generator power base (MVA)*/ + bool isOnline = true; /**< Machine status (> 0 = machine in-service; <= 0 = machine out-of-service) */ + }; + struct BranchData { + std::pair<int, int> busConnections = std::make_pair(0, 0); /**< Branch connection IDs */ + double resistance = 0.0; /**< Branch resistance */ + double indReactance = 0.0; /**< Branch inductive reactance */ + double capSusceptance = 0.0; /**< Branch capacitive susceptance */ + double tap = 0.0; /**< Transformer tap. If equal zero the branch is a line element */ + double phaseShift = 0.0; /**< Transformer phase shift. Positive represents delay */ + bool isOnline = true; /**< Element is online */ + }; + + ParseMatpower(wxFileName mFile); + ~ParseMatpower() { ClearData(); } + + void ClearData(); + + bool Parse(); + + std::vector<BranchData*> GetBranchData() const { return m_branchData; } + std::vector<BusData*> GetBusData() const { return m_busData; } + std::vector<GenData*> GetGenData() const { return m_genData; } + double GetMVAPowerBase() const { return m_mvaBase; } + + BusData* GetBusDataFromID(int id); + Bus* GetBusFromID(int id, std::vector<Bus*> busList); + + protected: + wxStringTokenizer GetMFileTokenData(wxTextFile& mFile, wxString currentLine); + wxFileName m_mFile; + + std::vector<BusData*> m_busData; + std::vector<BranchData*> m_branchData; + std::vector<GenData*> m_genData; + + wxString m_projectName = _("Imported project"); + double m_mvaBase = 100.0; +}; + #endif // IMPORTFORM_H diff --git a/Project/MainFrame.cpp b/Project/MainFrame.cpp index 5afff94..3af0545 100644 --- a/Project/MainFrame.cpp +++ b/Project/MainFrame.cpp @@ -27,6 +27,7 @@ #include "Inductor.h" #include "Line.h" #include "Load.h" +#include "HarmCurrent.h" #include "MainFrame.h" #include "PropertiesData.h" #include "SimulationsSettingsForm.h" @@ -124,6 +125,8 @@ void MainFrame::EnableCurrentProjectRibbon(bool enable) m_ribbonButtonBarClipboard->EnableButton(ID_RIBBON_UNDO, enable); m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_ROTATEC, enable); m_ribbonButtonBarCircuit->EnableButton(ID_RIBBON_ROTATECC, enable); + m_ribbonButtonBarSimulations->EnableButton(ID_RIBBON_HARMDIST, enable); + m_ribbonButtonBarSimulations->EnableButton(ID_RIBBON_FREQRESP, enable); } void MainFrame::CreateAddElementsMenu() @@ -150,6 +153,8 @@ void MainFrame::CreateAddElementsMenu() _("Adds a shunt capacitor at the circuit")); wxMenuItem* inductorElement = new wxMenuItem(m_addElementsMenu, ID_ADDMENU_INDUCTOR, _("&Inductor\tShift-I"), _("Adds a shunt inductor at the circuit")); + wxMenuItem* harmCurrentElement = new wxMenuItem(m_addElementsMenu, ID_ADDMENU_HARMCURRENT, _("&Harmonic current\tShift-H"), + _("Adds a harmonic current source at the circuit")); m_addElementsMenu->Append(busElement); m_addElementsMenu->Append(lineElement); @@ -160,6 +165,7 @@ void MainFrame::CreateAddElementsMenu() m_addElementsMenu->Append(loadElement); m_addElementsMenu->Append(capacitorElement); m_addElementsMenu->Append(inductorElement); + m_addElementsMenu->Append(harmCurrentElement); m_addElementsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, &MainFrame::OnAddElementsClick, this); } @@ -439,6 +445,14 @@ void MainFrame::OnAddElementsClick(wxCommandEvent& event) statusBarText = _("Insert Inductor: Click on a buses, ESC to cancel."); newElement = true; } break; + case ID_ADDMENU_HARMCURRENT: { + HarmCurrent* newHarmCurrent = + new HarmCurrent(wxString::Format(_("Harmonic Current %d"), workspace->GetElementNumber(ID_INDUCTOR))); + workspace->IncrementElementNumber(ID_HARMCURRENT); + elementList.push_back(newHarmCurrent); + statusBarText = _("Insert Harmonic Current Source: Click on a buses, ESC to cancel."); + newElement = true; + } break; case ID_ADDMENU_INDMOTOR: { IndMotor* newIndMotor = new IndMotor( wxString::Format(_("Induction motor %d"), workspace->GetElementNumber(ID_INDMOTOR))); @@ -540,3 +554,11 @@ void MainFrame::OnSimulationSettingsClick(wxRibbonButtonBarEvent& event) simulSettingsForm.ShowModal(); } } +void MainFrame::OnFreqResponseClick(wxRibbonButtonBarEvent& event) +{ +} +void MainFrame::OnHarmDistortionsClick(wxRibbonButtonBarEvent& event) +{ + Workspace* workspace = static_cast<Workspace*>(m_auiNotebook->GetCurrentPage()); + if(workspace) { workspace->RunHarmonicDistortion(); } +} diff --git a/Project/MainFrame.h b/Project/MainFrame.h index 58e4824..8ef62c2 100644 --- a/Project/MainFrame.h +++ b/Project/MainFrame.h @@ -46,7 +46,8 @@ enum { ID_ADDMENU_CAPACITOR, ID_ADDMENU_INDUCTOR, ID_ADDMENU_INDMOTOR, - ID_ADDMENU_SYNCCOMP + ID_ADDMENU_SYNCCOMP, + ID_ADDMENU_HARMCURRENT }; /** @@ -78,6 +79,8 @@ class MainFrame : public MainFrameBase ~MainFrame(); protected: + virtual void OnFreqResponseClick(wxRibbonButtonBarEvent& event); + virtual void OnHarmDistortionsClick(wxRibbonButtonBarEvent& event); virtual void OnGeneralSettingsClick(wxRibbonButtonBarEvent& event); virtual void OnSimulationSettingsClick(wxRibbonButtonBarEvent& event); virtual void OnRotClockClick(wxRibbonButtonBarEvent& event); diff --git a/Project/MainFrame.wxcp b/Project/MainFrame.wxcp index ef60bcc..7eed0fb 100644 --- a/Project/MainFrame.wxcp +++ b/Project/MainFrame.wxcp @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 151, + "m_objCounter": 153, "m_includeFiles": [], "m_bitmapFunction": "wxC9ED9InitBitmapResources", "m_bitmapsFile": "MainFrameBitmaps.cpp", @@ -4540,6 +4540,188 @@ "m_properties": [{ "type": "winid", "m_label": "ID:", + "m_winid": "ID_RIBBON_HARMDIST" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_ribbonButtonHarmDistortions" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Harmonic Distortions" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Harmonic Distortions" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "data/images/ribbon/harmDist32.png" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Calculate the voltage distortions on all buses due to harmonic current sources" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxRIBBON_BUTTON_NORMAL", "wxRIBBON_BUTTON_DROPDOWN", "wxRIBBON_BUTTON_HYBRID", "wxRIBBON_BUTTON_TOGGLE"] + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_RIBBONBUTTON_CLICKED", + "m_eventClass": "wxRibbonButtonBarEvent", + "m_eventHandler": "wxRibbonButtonBarEventHandler", + "m_functionNameAndSignature": "OnHarmDistortionsClick(wxRibbonButtonBarEvent& event)", + "m_description": "Triggered when the normal (non-dropdown) region of a button on the button bar is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4492, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "ID_RIBBON_FREQRESP" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_ribbonButtonFreqResponse" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "Frequency Response" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Frequency response" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "data/images/ribbon/freqResp32.png" + }, { + "type": "string", + "m_label": "Help String:", + "m_value": "Calculate the impedance seen in a bus for varies frequencies" + }, { + "type": "choice", + "m_label": "Kind:", + "m_selection": 0, + "m_options": ["wxRIBBON_BUTTON_NORMAL", "wxRIBBON_BUTTON_DROPDOWN", "wxRIBBON_BUTTON_HYBRID", "wxRIBBON_BUTTON_TOGGLE"] + }], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_RIBBONBUTTON_CLICKED", + "m_eventClass": "wxRibbonButtonBarEvent", + "m_eventHandler": "wxRibbonButtonBarEventHandler", + "m_functionNameAndSignature": "OnFreqResponseClick(wxRibbonButtonBarEvent& event)", + "m_description": "Triggered when the normal (non-dropdown) region of a button on the button bar is clicked.", + "m_noBody": false + }], + "m_children": [] + }, { + "m_type": 4492, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", "m_winid": "ID_RIBBON_SIMULSETTINGS" }, { "type": "string", diff --git a/Project/MainFrameBase.cpp b/Project/MainFrameBase.cpp index ac91ff5..6795ca0 100644 --- a/Project/MainFrameBase.cpp +++ b/Project/MainFrameBase.cpp @@ -6,17 +6,20 @@ #include "MainFrameBase.h" - // Declare the bitmap loading function extern void wxC9ED9InitBitmapResources(); static bool bBitmapLoaded = false; - -MainFrameBase::MainFrameBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +MainFrameBase::MainFrameBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxFrame(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxC9ED9InitBitmapResources(); @@ -28,203 +31,286 @@ MainFrameBase::MainFrameBase(wxWindow* parent, wxWindowID id, const wxString& ti wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo16")); wxIcon icn; icn.CopyFromBitmap(iconBmp); - app_icons.AddIcon( icn ); + app_icons.AddIcon(icn); } { wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo32")); wxIcon icn; icn.CopyFromBitmap(iconBmp); - app_icons.AddIcon( icn ); + app_icons.AddIcon(icn); } { wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo64")); wxIcon icn; icn.CopyFromBitmap(iconBmp); - app_icons.AddIcon( icn ); + app_icons.AddIcon(icn); } { wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo128")); wxIcon icn; icn.CopyFromBitmap(iconBmp); - app_icons.AddIcon( icn ); + app_icons.AddIcon(icn); } { wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("logo256")); wxIcon icn; icn.CopyFromBitmap(iconBmp); - app_icons.AddIcon( icn ); + app_icons.AddIcon(icn); } - SetIcons( app_icons ); + SetIcons(app_icons); - wxBoxSizer* boxSizer_lvl_1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer_lvl_1_1); - + wxBoxSizer* boxSizer_lvl_2_1 = new wxBoxSizer(wxVERTICAL); - + boxSizer_lvl_1_1->Add(boxSizer_lvl_2_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_ribbonBar = new wxRibbonBar(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxRIBBON_BAR_DEFAULT_STYLE); + + m_ribbonBar = new wxRibbonBar(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), + wxRIBBON_BAR_DEFAULT_STYLE); m_ribbonBar->SetArtProvider(new wxRibbonDefaultArtProvider); - + boxSizer_lvl_2_1->Add(m_ribbonBar, 0, wxEXPAND, WXC_FROM_DIP(5)); - + m_ribbonPageFile = new wxRibbonPage(m_ribbonBar, wxID_ANY, _("File"), wxNullBitmap, 0); m_ribbonPageFile->SetToolTip(_("File")); - m_ribbonBar->SetActivePage( m_ribbonPageFile ); - - m_ribbonPanelProjects = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Projects"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE); + m_ribbonBar->SetActivePage(m_ribbonPageFile); + + m_ribbonPanelProjects = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Projects"), wxNullBitmap, + wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1, -1)), + wxRIBBON_PANEL_NO_AUTO_MINIMISE | wxRIBBON_PANEL_DEFAULT_STYLE); m_ribbonPanelProjects->SetToolTip(_("Projects")); - - m_ribbonButtonBarProjects = new wxRibbonButtonBar(m_ribbonPanelProjects, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelProjects, wxSize(-1,-1)), 0); + + m_ribbonButtonBarProjects = new wxRibbonButtonBar(m_ribbonPanelProjects, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPanelProjects, wxSize(-1, -1)), 0); m_ribbonButtonBarProjects->SetToolTip(_("Projects")); - - m_ribbonButtonBarProjects->AddButton(ID_RIBBON_NEW, _("New"), wxXmlResource::Get()->LoadBitmap(wxT("new32")), _("Create new project"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarProjects->AddButton(ID_RIBBON_OPEN, _("Open"), wxXmlResource::Get()->LoadBitmap(wxT("open32")), _("Open saved project"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarProjects->AddButton(ID_RIBBON_IMPORT, _("Import"), wxXmlResource::Get()->LoadBitmap(wxT("imp32")), _("Open saved project"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarProjects->AddButton(ID_RIBBON_GENSETTINGS, _("General Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), _("Opens a dialog to set the main settings of the program"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarProjects->AddButton(ID_RIBBON_EXIT, _("Exit"), wxXmlResource::Get()->LoadBitmap(wxT("exit32")), _("Closes the application"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarProjects->AddButton(ID_RIBBON_NEW, _("New"), wxXmlResource::Get()->LoadBitmap(wxT("new32")), + _("Create new project"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarProjects->AddButton(ID_RIBBON_OPEN, _("Open"), wxXmlResource::Get()->LoadBitmap(wxT("open32")), + _("Open saved project"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarProjects->AddButton(ID_RIBBON_IMPORT, _("Import"), wxXmlResource::Get()->LoadBitmap(wxT("imp32")), + _("Open saved project"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarProjects->AddButton( + ID_RIBBON_GENSETTINGS, _("General Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), + _("Opens a dialog to set the main settings of the program"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarProjects->AddButton(ID_RIBBON_EXIT, _("Exit"), wxXmlResource::Get()->LoadBitmap(wxT("exit32")), + _("Closes the application"), wxRIBBON_BUTTON_NORMAL); m_ribbonButtonBarProjects->Realize(); - - m_ribbonPanelCProject = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Current project"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE); + + m_ribbonPanelCProject = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Current project"), wxNullBitmap, + wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1, -1)), + wxRIBBON_PANEL_NO_AUTO_MINIMISE | wxRIBBON_PANEL_DEFAULT_STYLE); m_ribbonPanelCProject->SetToolTip(_("Current project")); - - m_ribbonButtonBarCProject = new wxRibbonButtonBar(m_ribbonPanelCProject, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelCProject, wxSize(-1,-1)), 0); - - m_ribbonButtonBarCProject->AddButton(ID_RIBBON_SAVE, _("Save"), wxXmlResource::Get()->LoadBitmap(wxT("save32")), _("Save the current project"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarCProject->AddButton(ID_RIBBON_SAVEAS, _("Save As..."), wxXmlResource::Get()->LoadBitmap(wxT("saveAs32")), _("Save as the current project"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarCProject->AddButton(ID_RIBBON_CLOSE, _("Close"), wxXmlResource::Get()->LoadBitmap(wxT("close32")), _("Close the current project"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCProject = new wxRibbonButtonBar(m_ribbonPanelCProject, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPanelCProject, wxSize(-1, -1)), 0); + + m_ribbonButtonBarCProject->AddButton(ID_RIBBON_SAVE, _("Save"), wxXmlResource::Get()->LoadBitmap(wxT("save32")), + _("Save the current project"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCProject->AddButton(ID_RIBBON_SAVEAS, _("Save As..."), + wxXmlResource::Get()->LoadBitmap(wxT("saveAs32")), + _("Save as the current project"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCProject->AddButton(ID_RIBBON_CLOSE, _("Close"), wxXmlResource::Get()->LoadBitmap(wxT("close32")), + _("Close the current project"), wxRIBBON_BUTTON_NORMAL); m_ribbonButtonBarCProject->Realize(); - - m_ribbonPanelHelp = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Help"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageFile, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE); + + m_ribbonPanelHelp = new wxRibbonPanel(m_ribbonPageFile, wxID_ANY, _("Help"), wxNullBitmap, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPageFile, wxSize(-1, -1)), + wxRIBBON_PANEL_NO_AUTO_MINIMISE | wxRIBBON_PANEL_DEFAULT_STYLE); m_ribbonPanelHelp->SetToolTip(_("Help")); - - m_ribbonButtonBarHelp = new wxRibbonButtonBar(m_ribbonPanelHelp, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelHelp, wxSize(-1,-1)), 0); + + m_ribbonButtonBarHelp = new wxRibbonButtonBar(m_ribbonPanelHelp, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPanelHelp, wxSize(-1, -1)), 0); m_ribbonButtonBarHelp->SetToolTip(_("Help")); - - m_ribbonButtonBarHelp->AddButton(ID_RIBBON_GUIDE, _("PSP-UFU Guide"), wxXmlResource::Get()->LoadBitmap(wxT("guide32")), _("Open PSP-UFU Guide"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarHelp->AddButton(ID_RIBBON_ABOUT, _("About..."), wxXmlResource::Get()->LoadBitmap(wxT("about32")), _("About PSP-UFU"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarHelp->AddButton(ID_RIBBON_GUIDE, _("PSP-UFU Guide"), + wxXmlResource::Get()->LoadBitmap(wxT("guide32")), _("Open PSP-UFU Guide"), + wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarHelp->AddButton(ID_RIBBON_ABOUT, _("About..."), wxXmlResource::Get()->LoadBitmap(wxT("about32")), + _("About PSP-UFU"), wxRIBBON_BUTTON_NORMAL); m_ribbonButtonBarHelp->Realize(); - + m_ribbonPageTools = new wxRibbonPage(m_ribbonBar, wxID_ANY, _("Tools"), wxNullBitmap, 0); m_ribbonPageTools->SetToolTip(_("Tools")); - - m_ribbonPanelClipboard = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Clipboard"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE); + + m_ribbonPanelClipboard = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Clipboard"), wxNullBitmap, + wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1, -1)), + wxRIBBON_PANEL_NO_AUTO_MINIMISE | wxRIBBON_PANEL_DEFAULT_STYLE); m_ribbonPanelClipboard->SetToolTip(_("Clipboard")); - - m_ribbonButtonBarClipboard = new wxRibbonButtonBar(m_ribbonPanelClipboard, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelClipboard, wxSize(-1,-1)), 0); + + m_ribbonButtonBarClipboard = new wxRibbonButtonBar(m_ribbonPanelClipboard, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPanelClipboard, wxSize(-1, -1)), 0); m_ribbonButtonBarClipboard->SetToolTip(_("Clipboard")); - - m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_COPY, _("Copy"), wxXmlResource::Get()->LoadBitmap(wxT("copy32")), _("Copies the selected elements"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_PASTE, _("Paste"), wxXmlResource::Get()->LoadBitmap(wxT("paste32")), _("Pastes the elements from clipboard"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_UNDO, _("Undo"), wxXmlResource::Get()->LoadBitmap(wxT("undo32")), _("Undoes the last action"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_REDO, _("Redo"), wxXmlResource::Get()->LoadBitmap(wxT("redo32")), _("Redoes the last undo action"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_COPY, _("Copy"), wxXmlResource::Get()->LoadBitmap(wxT("copy32")), + _("Copies the selected elements"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_PASTE, _("Paste"), wxXmlResource::Get()->LoadBitmap(wxT("paste32")), + _("Pastes the elements from clipboard"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_UNDO, _("Undo"), wxXmlResource::Get()->LoadBitmap(wxT("undo32")), + _("Undoes the last action"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarClipboard->AddButton(ID_RIBBON_REDO, _("Redo"), wxXmlResource::Get()->LoadBitmap(wxT("redo32")), + _("Redoes the last undo action"), wxRIBBON_BUTTON_NORMAL); m_ribbonButtonBarClipboard->Realize(); - - m_ribbonPanelCircuit = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Circuit"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE); + + m_ribbonPanelCircuit = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Circuit"), wxNullBitmap, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPageTools, wxSize(-1, -1)), + wxRIBBON_PANEL_NO_AUTO_MINIMISE | wxRIBBON_PANEL_DEFAULT_STYLE); m_ribbonPanelCircuit->SetToolTip(_("Circuit")); - - m_ribbonButtonBarCircuit = new wxRibbonButtonBar(m_ribbonPanelCircuit, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelCircuit, wxSize(-1,-1)), 0); + + m_ribbonButtonBarCircuit = new wxRibbonButtonBar(m_ribbonPanelCircuit, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPanelCircuit, wxSize(-1, -1)), 0); m_ribbonButtonBarCircuit->SetToolTip(_("Circuit")); - - m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ADDELEMENT, _("Add Element"), wxXmlResource::Get()->LoadBitmap(wxT("add32")), _("Add a new element in the project"), wxRIBBON_BUTTON_DROPDOWN); - - m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_DRAG, _("Drag"), wxXmlResource::Get()->LoadBitmap(wxT("drag32")), _("Drag all the elements"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_MOVE, _("Move"), wxXmlResource::Get()->LoadBitmap(wxT("move32")), _("Move the selected elements"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_DELETE, _("Delete"), wxXmlResource::Get()->LoadBitmap(wxT("delete32")), _("Removes all selected elements"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_FIT, _("Fit"), wxXmlResource::Get()->LoadBitmap(wxT("fit32")), _("Applies the drag and zoom tools to show all elements in workspace"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATEC, _("Rotate Clockwise"), wxXmlResource::Get()->LoadBitmap(wxT("rotateClock32")), _("Rotate clockwise"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATECC, _("Rotate Counter-clockwise"), wxXmlResource::Get()->LoadBitmap(wxT("rotateCounterClock32")), _("Rotate the selected elements counter-clockwise"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_PROJSETTINGS, _("Project Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), _("Opens a dialog to set the main settings of the current project"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ADDELEMENT, _("Add Element"), + wxXmlResource::Get()->LoadBitmap(wxT("add32")), + _("Add a new element in the project"), wxRIBBON_BUTTON_DROPDOWN); + + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_DRAG, _("Drag"), wxXmlResource::Get()->LoadBitmap(wxT("drag32")), + _("Drag all the elements"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_MOVE, _("Move"), wxXmlResource::Get()->LoadBitmap(wxT("move32")), + _("Move the selected elements"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_DELETE, _("Delete"), + wxXmlResource::Get()->LoadBitmap(wxT("delete32")), + _("Removes all selected elements"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_FIT, _("Fit"), wxXmlResource::Get()->LoadBitmap(wxT("fit32")), + _("Applies the drag and zoom tools to show all elements in workspace"), + wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATEC, _("Rotate Clockwise"), + wxXmlResource::Get()->LoadBitmap(wxT("rotateClock32")), _("Rotate clockwise"), + wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCircuit->AddButton(ID_RIBBON_ROTATECC, _("Rotate Counter-clockwise"), + wxXmlResource::Get()->LoadBitmap(wxT("rotateCounterClock32")), + _("Rotate the selected elements counter-clockwise"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarCircuit->AddButton( + ID_RIBBON_PROJSETTINGS, _("Project Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), + _("Opens a dialog to set the main settings of the current project"), wxRIBBON_BUTTON_NORMAL); m_ribbonButtonBarCircuit->Realize(); - - m_ribbonPanelReports = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Reports"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageTools, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE); + + m_ribbonPanelReports = new wxRibbonPanel(m_ribbonPageTools, wxID_ANY, _("Reports"), wxNullBitmap, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPageTools, wxSize(-1, -1)), + wxRIBBON_PANEL_NO_AUTO_MINIMISE | wxRIBBON_PANEL_DEFAULT_STYLE); m_ribbonPanelReports->SetToolTip(_("Reports")); - - m_ribbonButtonBarReports = new wxRibbonButtonBar(m_ribbonPanelReports, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelReports, wxSize(-1,-1)), 0); - - m_ribbonButtonBarReports->AddButton(ID_RIBBON_DATAREPORT, _("Data Report"), wxXmlResource::Get()->LoadBitmap(wxT("dataReport32")), _("Opens a data report"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarReports->AddButton(ID_RIBBON_CHARTS, _("Charts"), wxXmlResource::Get()->LoadBitmap(wxT("chart32")), _("Open the charts"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarReports->AddButton(ID_RIBBON_SNAPSHOT, _("Snapshot"), wxXmlResource::Get()->LoadBitmap(wxT("snap32")), _("Capture a snapshot of the circuit"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarReports = new wxRibbonButtonBar(m_ribbonPanelReports, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPanelReports, wxSize(-1, -1)), 0); + + m_ribbonButtonBarReports->AddButton(ID_RIBBON_DATAREPORT, _("Data Report"), + wxXmlResource::Get()->LoadBitmap(wxT("dataReport32")), _("Opens a data report"), + wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarReports->AddButton(ID_RIBBON_CHARTS, _("Charts"), wxXmlResource::Get()->LoadBitmap(wxT("chart32")), + _("Open the charts"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarReports->AddButton(ID_RIBBON_SNAPSHOT, _("Snapshot"), + wxXmlResource::Get()->LoadBitmap(wxT("snap32")), + _("Capture a snapshot of the circuit"), wxRIBBON_BUTTON_NORMAL); m_ribbonButtonBarReports->Realize(); - + m_ribbonPageSimulation = new wxRibbonPage(m_ribbonBar, wxID_ANY, _("Simulation"), wxNullBitmap, 0); m_ribbonPageSimulation->SetToolTip(_("Simulation")); - - m_ribbonPanelContinuous = new wxRibbonPanel(m_ribbonPageSimulation, wxID_ANY, _("Continuous"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageSimulation, wxSize(-1,-1)), wxRIBBON_PANEL_DEFAULT_STYLE); + + m_ribbonPanelContinuous = + new wxRibbonPanel(m_ribbonPageSimulation, wxID_ANY, _("Continuous"), wxNullBitmap, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPageSimulation, wxSize(-1, -1)), wxRIBBON_PANEL_DEFAULT_STYLE); m_ribbonPanelContinuous->SetToolTip(_("Continuous")); - - m_ribbonButtonBarContinuous = new wxRibbonButtonBar(m_ribbonPanelContinuous, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelContinuous, wxSize(-1,-1)), 0); - - m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_ENABLESOL, _("Enable Solution"), wxXmlResource::Get()->LoadBitmap(wxT("playStopped32")), _("Enables the power flow and fault (if exists) calculations after any circuit change"), wxRIBBON_BUTTON_TOGGLE); - - m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_DISABLESOL, _("Disable Solution"), wxXmlResource::Get()->LoadBitmap(wxT("pauseStopped32")), _("Disables the power flow and fault calculations after any circuit changes"), wxRIBBON_BUTTON_TOGGLE); - - m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_RESETVOLT, _("Reset Voltages"), wxXmlResource::Get()->LoadBitmap(wxT("reset32")), _("Reset all voltages to initial state"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarContinuous = new wxRibbonButtonBar(m_ribbonPanelContinuous, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPanelContinuous, wxSize(-1, -1)), 0); + + m_ribbonButtonBarContinuous->AddButton( + ID_RIBBON_ENABLESOL, _("Enable Solution"), wxXmlResource::Get()->LoadBitmap(wxT("playStopped32")), + _("Enables the power flow and fault (if exists) calculations after any circuit change"), + wxRIBBON_BUTTON_TOGGLE); + + m_ribbonButtonBarContinuous->AddButton( + ID_RIBBON_DISABLESOL, _("Disable Solution"), wxXmlResource::Get()->LoadBitmap(wxT("pauseStopped32")), + _("Disables the power flow and fault calculations after any circuit changes"), wxRIBBON_BUTTON_TOGGLE); + + m_ribbonButtonBarContinuous->AddButton(ID_RIBBON_RESETVOLT, _("Reset Voltages"), + wxXmlResource::Get()->LoadBitmap(wxT("reset32")), + _("Reset all voltages to initial state"), wxRIBBON_BUTTON_NORMAL); m_ribbonButtonBarContinuous->Realize(); - - m_ribbonPanelSimulations = new wxRibbonPanel(m_ribbonPageSimulation, wxID_ANY, _("Simulations"), wxNullBitmap, wxDefaultPosition, wxDLG_UNIT(m_ribbonPageSimulation, wxSize(-1,-1)), wxRIBBON_PANEL_NO_AUTO_MINIMISE|wxRIBBON_PANEL_DEFAULT_STYLE); + + m_ribbonPanelSimulations = new wxRibbonPanel(m_ribbonPageSimulation, wxID_ANY, _("Simulations"), wxNullBitmap, + wxDefaultPosition, wxDLG_UNIT(m_ribbonPageSimulation, wxSize(-1, -1)), + wxRIBBON_PANEL_NO_AUTO_MINIMISE | wxRIBBON_PANEL_DEFAULT_STYLE); m_ribbonPanelSimulations->SetToolTip(_("Simulations")); - - m_ribbonButtonBarSimulations = new wxRibbonButtonBar(m_ribbonPanelSimulations, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_ribbonPanelSimulations, wxSize(-1,-1)), 0); + + m_ribbonButtonBarSimulations = new wxRibbonButtonBar(m_ribbonPanelSimulations, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_ribbonPanelSimulations, wxSize(-1, -1)), 0); m_ribbonButtonBarSimulations->SetToolTip(_("Simulations")); - - m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_POWERFLOW, _("Power Flow"), wxXmlResource::Get()->LoadBitmap(wxT("powerFLow32")), _("Calculate the circuit power flow"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_RUNSTAB, _("Run Stability"), wxXmlResource::Get()->LoadBitmap(wxT("playStopped32")), _("Run the stability calculations"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_FAULT, _("Fault"), wxXmlResource::Get()->LoadBitmap(wxT("fault32")), _("Calculate the circuit fault (if exists)"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_SCPOWER, _("Short-Circuit Power"), wxXmlResource::Get()->LoadBitmap(wxT("faultPower32")), _("Calculate the short-circuit power in all buses"), wxRIBBON_BUTTON_NORMAL); - - m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_SIMULSETTINGS, _("Simulation Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), _("Opens a dialog to set the settings of the simulations"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_POWERFLOW, _("Power Flow"), + wxXmlResource::Get()->LoadBitmap(wxT("powerFLow32")), + _("Calculate the circuit power flow"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_RUNSTAB, _("Run Stability"), + wxXmlResource::Get()->LoadBitmap(wxT("playStopped32")), + _("Run the stability calculations"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarSimulations->AddButton(ID_RIBBON_FAULT, _("Fault"), + wxXmlResource::Get()->LoadBitmap(wxT("fault32")), + _("Calculate the circuit fault (if exists)"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarSimulations->AddButton( + ID_RIBBON_SCPOWER, _("Short-Circuit Power"), wxXmlResource::Get()->LoadBitmap(wxT("faultPower32")), + _("Calculate the short-circuit power in all buses"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarSimulations->AddButton( + ID_RIBBON_HARMDIST, _("Harmonic Distortions"), wxXmlResource::Get()->LoadBitmap(wxT("harmDist32")), + _("Calculate the voltage distortions on all buses due to harmonic current sources"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarSimulations->AddButton( + ID_RIBBON_FREQRESP, _("Frequency response"), wxXmlResource::Get()->LoadBitmap(wxT("freqResp32")), + _("Calculate the impedance seen in a bus for varies frequencies"), wxRIBBON_BUTTON_NORMAL); + + m_ribbonButtonBarSimulations->AddButton( + ID_RIBBON_SIMULSETTINGS, _("Simulation Settings"), wxXmlResource::Get()->LoadBitmap(wxT("settings32")), + _("Opens a dialog to set the settings of the simulations"), wxRIBBON_BUTTON_NORMAL); m_ribbonButtonBarSimulations->Realize(); m_ribbonBar->Realize(); wxBoxSizer* boxSizer_lvl_2_2 = new wxBoxSizer(wxVERTICAL); - + boxSizer_lvl_1_1->Add(boxSizer_lvl_2_2, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_auiNotebook = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxAUI_NB_DEFAULT_STYLE|wxBK_DEFAULT); + + m_auiNotebook = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), + wxAUI_NB_DEFAULT_STYLE | wxBK_DEFAULT); m_auiNotebook->SetName(wxT("m_auiNotebook")); - + boxSizer_lvl_2_2->Add(m_auiNotebook, 1, wxEXPAND, WXC_FROM_DIP(5)); - + m_statusBar = new wxStatusBar(this, wxID_ANY, wxSTB_DEFAULT_STYLE); m_statusBar->SetFieldsCount(4); this->SetStatusBar(m_statusBar); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_auiNotebook)){ + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_auiNotebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_auiNotebook); } else { wxPersistenceManager::Get().Restore(m_auiNotebook); } - #endif - +#endif + SetName(wxT("MainFrameBase")); - SetSize(800,600); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(800, 600))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -238,78 +324,171 @@ MainFrameBase::MainFrameBase(wxWindow* parent, wxWindowID id, const wxString& ti } #endif // Connect events - m_ribbonButtonBarProjects->Connect(ID_RIBBON_NEW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnNewClick), NULL, this); - m_ribbonButtonBarProjects->Connect(ID_RIBBON_OPEN, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnOpenClick), NULL, this); - m_ribbonButtonBarProjects->Connect(ID_RIBBON_IMPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnImportClick), NULL, this); - m_ribbonButtonBarProjects->Connect(ID_RIBBON_GENSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnGeneralSettingsClick), NULL, this); - m_ribbonButtonBarProjects->Connect(ID_RIBBON_EXIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnExitClick), NULL, this); - m_ribbonButtonBarCProject->Connect(ID_RIBBON_SAVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveClick), NULL, this); - m_ribbonButtonBarCProject->Connect(ID_RIBBON_SAVEAS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveAsClick), NULL, this); - m_ribbonButtonBarCProject->Connect(ID_RIBBON_CLOSE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnCloseClick), NULL, this); - m_ribbonButtonBarHelp->Connect(ID_RIBBON_GUIDE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPSPGuideClick), NULL, this); - m_ribbonButtonBarHelp->Connect(ID_RIBBON_ABOUT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnAboutClick), NULL, this); - m_ribbonButtonBarClipboard->Connect(ID_RIBBON_COPY, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnCopyClick), NULL, this); - m_ribbonButtonBarClipboard->Connect(ID_RIBBON_PASTE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPasteClick), NULL, this); - m_ribbonButtonBarClipboard->Connect(ID_RIBBON_UNDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnUndoClick), NULL, this); - m_ribbonButtonBarClipboard->Connect(ID_RIBBON_REDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRedoClick), NULL, this); - m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ADDELEMENT, wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnAddElementDropdown), NULL, this); - m_ribbonButtonBarCircuit->Connect(ID_RIBBON_DRAG, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDragClick), NULL, this); - m_ribbonButtonBarCircuit->Connect(ID_RIBBON_MOVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnMoveClick), NULL, this); - m_ribbonButtonBarCircuit->Connect(ID_RIBBON_DELETE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDeleteClick), NULL, this); - m_ribbonButtonBarCircuit->Connect(ID_RIBBON_FIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFitClick), NULL, this); - m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ROTATEC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotClockClick), NULL, this); - m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ROTATECC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotCounterClockClick), NULL, this); - m_ribbonButtonBarReports->Connect(ID_RIBBON_DATAREPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDataReportClick), NULL, this); - m_ribbonButtonBarReports->Connect(ID_RIBBON_CHARTS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnChartsClick), NULL, this); - m_ribbonButtonBarReports->Connect(ID_RIBBON_SNAPSHOT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSnapshotClick), NULL, this); - m_ribbonButtonBarContinuous->Connect(ID_RIBBON_ENABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnEnableSolutionClick), NULL, this); - m_ribbonButtonBarContinuous->Connect(ID_RIBBON_DISABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDisableSolutionClick), NULL, this); - m_ribbonButtonBarContinuous->Connect(ID_RIBBON_RESETVOLT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnResetVoltagesClick), NULL, this); - m_ribbonButtonBarSimulations->Connect(ID_RIBBON_POWERFLOW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPowerFlowClick), NULL, this); - m_ribbonButtonBarSimulations->Connect(ID_RIBBON_RUNSTAB, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRunStabilityClick), NULL, this); - m_ribbonButtonBarSimulations->Connect(ID_RIBBON_FAULT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFaultClick), NULL, this); - m_ribbonButtonBarSimulations->Connect(ID_RIBBON_SCPOWER, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSCPowerClick), NULL, this); - m_ribbonButtonBarSimulations->Connect(ID_RIBBON_SIMULSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSimulationSettingsClick), NULL, this); - m_auiNotebook->Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosing), NULL, this); - m_auiNotebook->Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosed), NULL, this); - + m_ribbonButtonBarProjects->Connect(ID_RIBBON_NEW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnNewClick), NULL, this); + m_ribbonButtonBarProjects->Connect(ID_RIBBON_OPEN, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnOpenClick), NULL, this); + m_ribbonButtonBarProjects->Connect(ID_RIBBON_IMPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnImportClick), NULL, this); + m_ribbonButtonBarProjects->Connect(ID_RIBBON_GENSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnGeneralSettingsClick), NULL, + this); + m_ribbonButtonBarProjects->Connect(ID_RIBBON_EXIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnExitClick), NULL, this); + m_ribbonButtonBarCProject->Connect(ID_RIBBON_SAVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveClick), NULL, this); + m_ribbonButtonBarCProject->Connect(ID_RIBBON_SAVEAS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveAsClick), NULL, this); + m_ribbonButtonBarCProject->Connect(ID_RIBBON_CLOSE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnCloseClick), NULL, this); + m_ribbonButtonBarHelp->Connect(ID_RIBBON_GUIDE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnPSPGuideClick), NULL, this); + m_ribbonButtonBarHelp->Connect(ID_RIBBON_ABOUT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnAboutClick), NULL, this); + m_ribbonButtonBarClipboard->Connect(ID_RIBBON_COPY, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnCopyClick), NULL, this); + m_ribbonButtonBarClipboard->Connect(ID_RIBBON_PASTE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnPasteClick), NULL, this); + m_ribbonButtonBarClipboard->Connect(ID_RIBBON_UNDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnUndoClick), NULL, this); + m_ribbonButtonBarClipboard->Connect(ID_RIBBON_REDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnRedoClick), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ADDELEMENT, wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnAddElementDropdown), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_DRAG, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnDragClick), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_MOVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnMoveClick), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_DELETE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnDeleteClick), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_FIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnFitClick), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ROTATEC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnRotClockClick), NULL, this); + m_ribbonButtonBarCircuit->Connect(ID_RIBBON_ROTATECC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnRotCounterClockClick), NULL, this); + m_ribbonButtonBarReports->Connect(ID_RIBBON_DATAREPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnDataReportClick), NULL, this); + m_ribbonButtonBarReports->Connect(ID_RIBBON_CHARTS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnChartsClick), NULL, this); + m_ribbonButtonBarReports->Connect(ID_RIBBON_SNAPSHOT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSnapshotClick), NULL, this); + m_ribbonButtonBarContinuous->Connect(ID_RIBBON_ENABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnEnableSolutionClick), NULL, + this); + m_ribbonButtonBarContinuous->Connect(ID_RIBBON_DISABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnDisableSolutionClick), NULL, + this); + m_ribbonButtonBarContinuous->Connect(ID_RIBBON_RESETVOLT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnResetVoltagesClick), NULL, + this); + m_ribbonButtonBarSimulations->Connect(ID_RIBBON_POWERFLOW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnPowerFlowClick), NULL, this); + m_ribbonButtonBarSimulations->Connect(ID_RIBBON_RUNSTAB, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnRunStabilityClick), NULL, + this); + m_ribbonButtonBarSimulations->Connect(ID_RIBBON_FAULT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnFaultClick), NULL, this); + m_ribbonButtonBarSimulations->Connect(ID_RIBBON_SCPOWER, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSCPowerClick), NULL, this); + m_ribbonButtonBarSimulations->Connect(ID_RIBBON_HARMDIST, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnHarmDistortionsClick), NULL, + this); + m_ribbonButtonBarSimulations->Connect(ID_RIBBON_FREQRESP, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnFreqResponseClick), NULL, + this); + m_ribbonButtonBarSimulations->Connect(ID_RIBBON_SIMULSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSimulationSettingsClick), NULL, + this); + m_auiNotebook->Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, + wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosing), NULL, this); + m_auiNotebook->Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, + wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosed), NULL, this); } MainFrameBase::~MainFrameBase() { - m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_NEW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnNewClick), NULL, this); - m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_OPEN, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnOpenClick), NULL, this); - m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_IMPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnImportClick), NULL, this); - m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_GENSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnGeneralSettingsClick), NULL, this); - m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_EXIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnExitClick), NULL, this); - m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_SAVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveClick), NULL, this); - m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_SAVEAS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveAsClick), NULL, this); - m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_CLOSE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnCloseClick), NULL, this); - m_ribbonButtonBarHelp->Disconnect(ID_RIBBON_GUIDE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPSPGuideClick), NULL, this); - m_ribbonButtonBarHelp->Disconnect(ID_RIBBON_ABOUT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnAboutClick), NULL, this); - m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_COPY, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnCopyClick), NULL, this); - m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_PASTE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPasteClick), NULL, this); - m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_UNDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnUndoClick), NULL, this); - m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_REDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRedoClick), NULL, this); - m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ADDELEMENT, wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnAddElementDropdown), NULL, this); - m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_DRAG, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDragClick), NULL, this); - m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_MOVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnMoveClick), NULL, this); - m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_DELETE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDeleteClick), NULL, this); - m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_FIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFitClick), NULL, this); - m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ROTATEC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotClockClick), NULL, this); - m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ROTATECC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRotCounterClockClick), NULL, this); - m_ribbonButtonBarReports->Disconnect(ID_RIBBON_DATAREPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDataReportClick), NULL, this); - m_ribbonButtonBarReports->Disconnect(ID_RIBBON_CHARTS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnChartsClick), NULL, this); - m_ribbonButtonBarReports->Disconnect(ID_RIBBON_SNAPSHOT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSnapshotClick), NULL, this); - m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_ENABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnEnableSolutionClick), NULL, this); - m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_DISABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnDisableSolutionClick), NULL, this); - m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_RESETVOLT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnResetVoltagesClick), NULL, this); - m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_POWERFLOW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnPowerFlowClick), NULL, this); - m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_RUNSTAB, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnRunStabilityClick), NULL, this); - m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_FAULT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnFaultClick), NULL, this); - m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_SCPOWER, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSCPowerClick), NULL, this); - m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_SIMULSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, wxRibbonButtonBarEventHandler(MainFrameBase::OnSimulationSettingsClick), NULL, this); - m_auiNotebook->Disconnect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosing), NULL, this); - m_auiNotebook->Disconnect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosed), NULL, this); - + m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_NEW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnNewClick), NULL, this); + m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_OPEN, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnOpenClick), NULL, this); + m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_IMPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnImportClick), NULL, this); + m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_GENSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnGeneralSettingsClick), NULL, + this); + m_ribbonButtonBarProjects->Disconnect(ID_RIBBON_EXIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnExitClick), NULL, this); + m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_SAVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveClick), NULL, this); + m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_SAVEAS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSaveAsClick), NULL, this); + m_ribbonButtonBarCProject->Disconnect(ID_RIBBON_CLOSE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnCloseClick), NULL, this); + m_ribbonButtonBarHelp->Disconnect(ID_RIBBON_GUIDE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnPSPGuideClick), NULL, this); + m_ribbonButtonBarHelp->Disconnect(ID_RIBBON_ABOUT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnAboutClick), NULL, this); + m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_COPY, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnCopyClick), NULL, this); + m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_PASTE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnPasteClick), NULL, this); + m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_UNDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnUndoClick), NULL, this); + m_ribbonButtonBarClipboard->Disconnect(ID_RIBBON_REDO, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnRedoClick), NULL, this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ADDELEMENT, wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnAddElementDropdown), NULL, + this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_DRAG, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnDragClick), NULL, this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_MOVE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnMoveClick), NULL, this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_DELETE, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnDeleteClick), NULL, this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_FIT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnFitClick), NULL, this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ROTATEC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnRotClockClick), NULL, this); + m_ribbonButtonBarCircuit->Disconnect(ID_RIBBON_ROTATECC, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnRotCounterClockClick), NULL, + this); + m_ribbonButtonBarReports->Disconnect(ID_RIBBON_DATAREPORT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnDataReportClick), NULL, this); + m_ribbonButtonBarReports->Disconnect(ID_RIBBON_CHARTS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnChartsClick), NULL, this); + m_ribbonButtonBarReports->Disconnect(ID_RIBBON_SNAPSHOT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSnapshotClick), NULL, this); + m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_ENABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnEnableSolutionClick), NULL, + this); + m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_DISABLESOL, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnDisableSolutionClick), NULL, + this); + m_ribbonButtonBarContinuous->Disconnect(ID_RIBBON_RESETVOLT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnResetVoltagesClick), NULL, + this); + m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_POWERFLOW, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnPowerFlowClick), NULL, + this); + m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_RUNSTAB, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnRunStabilityClick), NULL, + this); + m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_FAULT, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnFaultClick), NULL, this); + m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_SCPOWER, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSCPowerClick), NULL, this); + m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_HARMDIST, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnHarmDistortionsClick), NULL, + this); + m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_FREQRESP, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnFreqResponseClick), NULL, + this); + m_ribbonButtonBarSimulations->Disconnect(ID_RIBBON_SIMULSETTINGS, wxEVT_COMMAND_RIBBONBUTTON_CLICKED, + wxRibbonButtonBarEventHandler(MainFrameBase::OnSimulationSettingsClick), + NULL, this); + m_auiNotebook->Disconnect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, + wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosing), NULL, this); + m_auiNotebook->Disconnect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, + wxAuiNotebookEventHandler(MainFrameBase::NotebookPageClosed), NULL, this); } diff --git a/Project/MainFrameBase.h b/Project/MainFrameBase.h index 0b3dc45..1b035bb 100644 --- a/Project/MainFrameBase.h +++ b/Project/MainFrameBase.h @@ -7,24 +7,24 @@ #ifndef _PSP_PROJECT_MAINFRAME_BASE_CLASSES_H #define _PSP_PROJECT_MAINFRAME_BASE_CLASSES_H -#include <wx/settings.h> -#include <wx/xrc/xmlres.h> -#include <wx/xrc/xh_bmp.h> +#include <wx/artprov.h> +#include <wx/aui/auibook.h> #include <wx/frame.h> #include <wx/iconbndl.h> -#include <wx/artprov.h> -#include <wx/sizer.h> -#include <wx/ribbon/bar.h> #include <wx/ribbon/art.h> +#include <wx/ribbon/bar.h> +#include <wx/ribbon/buttonbar.h> #include <wx/ribbon/page.h> #include <wx/ribbon/panel.h> -#include <wx/ribbon/buttonbar.h> -#include <wx/aui/auibook.h> +#include <wx/settings.h> +#include <wx/sizer.h> #include <wx/statusbr.h> +#include <wx/xrc/xh_bmp.h> +#include <wx/xrc/xmlres.h> #if wxVERSION_NUMBER >= 2900 #include <wx/persist.h> -#include <wx/persist/toplevel.h> #include <wx/persist/bookctrl.h> +#include <wx/persist/toplevel.h> #include <wx/persist/treebook.h> #endif @@ -37,46 +37,48 @@ #define WXC_FROM_DIP(x) x #endif - class MainFrameBase : public wxFrame { -public: + public: enum { - ID_RIBBON_SCPOWER = 10001, - ID_RIBBON_FAULT = 10002, - ID_RIBBON_RUNSTAB = 10003, - ID_RIBBON_POWERFLOW = 10004, - ID_RIBBON_DISABLESOL = 10005, - ID_RIBBON_ENABLESOL = 10006, - ID_RIBBON_SNAPSHOT = 10007, - ID_RIBBON_PROJSETTINGS = 10008, - ID_RIBBON_CHARTS = 10009, - ID_RIBBON_ROTATEC = 10010, - ID_RIBBON_SIMULSETTINGS = 10011, - ID_RIBBON_DATAREPORT = 10012, - ID_RIBBON_FIT = 10013, - ID_RIBBON_MOVE = 10014, - ID_RIBBON_SAVE = 10015, - ID_RIBBON_EXIT = 10016, - ID_RIBBON_GENSETTINGS = 10017, - ID_RIBBON_SAVEAS = 10018, - ID_RIBBON_DRAG = 10019, - ID_RIBBON_RESETVOLT = 10020, - ID_RIBBON_NEW = 10021, - ID_RIBBON_OPEN = 10022, - ID_RIBBON_CLOSE = 10023, - ID_RIBBON_GUIDE = 10024, - ID_RIBBON_ABOUT = 10025, - ID_RIBBON_ROTATECC = 10026, - ID_RIBBON_IMPORT = 10027, - ID_RIBBON_COPY = 10028, - ID_RIBBON_DELETE = 10029, - ID_RIBBON_REDO = 10030, - ID_RIBBON_PASTE = 10031, - ID_RIBBON_UNDO = 10032, - ID_RIBBON_ADDELEMENT = 10033, + ID_RIBBON_FREQRESP = 10001, + ID_RIBBON_SCPOWER = 10002, + ID_RIBBON_FAULT = 10003, + ID_RIBBON_RUNSTAB = 10004, + ID_RIBBON_POWERFLOW = 10005, + ID_RIBBON_DISABLESOL = 10006, + ID_RIBBON_ENABLESOL = 10007, + ID_RIBBON_SNAPSHOT = 10008, + ID_RIBBON_PROJSETTINGS = 10009, + ID_RIBBON_CHARTS = 10010, + ID_RIBBON_ROTATEC = 10011, + ID_RIBBON_SIMULSETTINGS = 10012, + ID_RIBBON_DATAREPORT = 10013, + ID_RIBBON_FIT = 10014, + ID_RIBBON_MOVE = 10015, + ID_RIBBON_DRAG = 10016, + ID_RIBBON_ADDELEMENT = 10017, + ID_RIBBON_DELETE = 10018, + ID_RIBBON_REDO = 10019, + ID_RIBBON_UNDO = 10020, + ID_RIBBON_PASTE = 10021, + ID_RIBBON_ABOUT = 10022, + ID_RIBBON_GUIDE = 10023, + ID_RIBBON_HARMDIST = 10024, + ID_RIBBON_CLOSE = 10025, + ID_RIBBON_SAVEAS = 10026, + ID_RIBBON_SAVE = 10027, + ID_RIBBON_EXIT = 10028, + ID_RIBBON_GENSETTINGS = 10029, + ID_RIBBON_ROTATECC = 10030, + ID_RIBBON_COPY = 10031, + ID_RIBBON_IMPORT = 10032, + ID_RIBBON_OPEN = 10033, + ID_RIBBON_RESETVOLT = 10034, + ID_RIBBON_NEW = 10035, }; -protected: + + protected: wxRibbonBar* m_ribbonBar; wxRibbonPage* m_ribbonPageFile; wxRibbonPanel* m_ribbonPanelProjects; @@ -100,7 +102,7 @@ protected: wxAuiNotebook* m_auiNotebook; wxStatusBar* m_statusBar; -protected: + protected: virtual void OnNewClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnOpenClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnImportClick(wxRibbonButtonBarEvent& event) { event.Skip(); } @@ -132,15 +134,23 @@ protected: virtual void OnRunStabilityClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnFaultClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnSCPowerClick(wxRibbonButtonBarEvent& event) { event.Skip(); } + virtual void OnHarmDistortionsClick(wxRibbonButtonBarEvent& event) { event.Skip(); } + virtual void OnFreqResponseClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void OnSimulationSettingsClick(wxRibbonButtonBarEvent& event) { event.Skip(); } virtual void NotebookPageClosing(wxAuiNotebookEvent& event) { event.Skip(); } virtual void NotebookPageClosed(wxAuiNotebookEvent& event) { event.Skip(); } -public: + public: wxRibbonBar* GetRibbonBar() { return m_ribbonBar; } wxAuiNotebook* GetAuiNotebook() { return m_auiNotebook; } wxStatusBar* GetStatusBar() { return m_statusBar; } - MainFrameBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("PSP-UFU"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(800,600), long style = wxCAPTION|wxRESIZE_BORDER|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxCLOSE_BOX); + MainFrameBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("PSP-UFU"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(800, 600), + long style = wxCAPTION | wxRESIZE_BORDER | wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxSYSTEM_MENU | + wxCLOSE_BOX); virtual ~MainFrameBase(); }; diff --git a/Project/MainFrameBitmaps.cpp b/Project/MainFrameBitmaps.cpp index e21a35b..33c1534 100644 --- a/Project/MainFrameBitmaps.cpp +++ b/Project/MainFrameBitmaps.cpp @@ -699,10 +699,61 @@ static unsigned char xml_res_file_11[] = { 212,228,3,16,231,48,167,214,199,123,61,255,15,248,15,77,215,175,116,59, 39,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_12 = 1284; +static size_t xml_res_size_12 = 995; static unsigned char xml_res_file_12[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, +72,89,115,0,0,5,98,0,0,5,98,1,172,97,92,156,0,0,0,25,116,69,88,116,83,111, +102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46, +111,114,103,155,238,60,26,0,0,3,96,73,68,65,84,88,133,197,215,91,136,213, +85,20,199,241,207,246,140,115,17,210,116,188,229,5,39,27,53,7,53,81,34, +112,180,24,144,2,107,64,124,82,8,124,52,161,135,64,6,242,161,40,66,202, +183,32,232,33,130,4,169,80,179,41,36,9,3,77,66,73,204,188,116,67,188,140, +151,212,113,50,199,242,148,206,241,239,217,61,28,231,204,209,113,102,206, +57,230,184,159,246,127,237,181,247,250,254,127,255,181,246,127,239,224, +245,189,81,106,168,7,213,42,220,232,50,229,225,42,139,235,71,129,157,109, +87,181,93,233,26,68,0,204,27,91,233,195,230,58,176,124,235,201,65,5,24, +50,104,145,138,6,200,38,15,24,224,102,66,146,185,231,133,191,180,198,206, +176,122,64,191,138,187,90,187,1,42,42,203,10,94,163,75,115,248,78,16,61, +234,188,54,19,250,244,237,59,7,146,76,217,74,212,232,18,68,80,239,108,191, +190,253,39,97,153,16,21,122,242,104,140,206,123,0,40,19,34,10,249,254,104, +87,202,7,24,163,83,147,31,212,36,87,75,130,184,41,85,0,240,87,249,0,239, +135,245,90,67,139,217,78,148,164,68,182,64,129,218,112,15,10,60,230,119, +208,224,100,206,80,36,68,182,96,217,218,114,21,72,201,154,232,15,240,184, +83,61,3,69,64,100,255,143,28,152,164,67,149,92,160,58,231,110,31,44,225, +115,148,173,192,180,112,38,223,175,11,23,122,59,244,3,81,89,80,134,19,92, +42,15,160,62,246,108,32,117,46,24,34,91,52,68,183,114,228,42,169,240,185, +104,128,169,33,39,123,34,165,90,198,120,127,222,221,241,46,16,85,110,228, +251,65,204,231,82,73,0,245,49,87,1,123,227,19,96,166,182,62,23,185,19,162, +246,142,196,235,126,153,146,0,230,132,99,254,85,237,171,208,8,102,117,151, +98,17,16,227,194,101,112,77,85,110,110,60,81,26,64,157,11,70,187,226,176, +233,14,153,1,230,134,163,253,3,20,64,140,139,57,128,61,183,212,155,21,74, +4,152,239,55,112,32,206,116,40,78,115,93,149,70,135,243,127,184,129,32, +102,36,199,64,171,38,81,240,164,95,75,3,120,58,252,8,190,55,75,151,74,251, +53,24,171,211,12,167,7,6,192,220,228,103,215,19,182,89,228,136,122,179, +29,239,51,17,123,1,4,209,179,246,201,24,234,91,243,193,55,158,2,203,236, +26,48,248,8,105,115,195,81,167,146,209,206,38,35,109,143,141,130,104,137, +61,197,1,76,214,238,17,151,236,141,115,164,213,128,205,113,177,68,202,138, +176,195,80,253,159,25,215,218,160,90,70,107,108,34,201,216,146,44,2,175, +132,79,84,22,148,103,159,0,77,14,128,109,97,81,222,214,174,214,118,141, +38,107,247,106,216,144,183,79,119,198,203,97,147,85,225,115,147,92,244, +65,88,231,165,176,85,187,90,239,90,1,14,38,83,125,118,99,161,6,109,90,181, +24,33,125,91,46,245,58,19,46,240,147,78,15,249,52,62,119,155,253,181,184, +218,194,112,200,26,31,107,208,230,114,24,110,185,29,82,183,118,200,245, +225,61,112,204,100,47,198,183,116,24,153,159,187,42,105,49,49,92,178,164, +98,143,19,150,74,27,102,183,121,86,198,55,114,0,35,170,123,56,170,199,207, +180,251,218,108,11,123,29,36,71,89,103,139,150,176,81,179,14,100,117,90, +230,11,207,24,238,31,11,28,241,139,169,62,138,205,166,168,54,229,142,185, +111,219,104,101,234,107,47,164,246,25,38,216,113,241,121,210,176,118,87, +124,103,247,233,56,216,109,217,230,227,209,155,251,227,3,191,25,85,192, +166,35,29,82,33,119,136,56,247,119,198,213,174,251,127,59,58,112,54,221, +3,112,240,124,218,193,243,233,251,30,180,87,171,168,244,31,127,232,176, +29,234,3,231,33,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_13 = 1284; +static unsigned char xml_res_file_13[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,3,177,0,0,3,177,1,245,131,237,73,0,0,0,25,116,69,88,116,83, 111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, 46,111,114,103,155,238,60,26,0,0,4,129,73,68,65,84,88,133,197,151,107,108, @@ -764,8 +815,53 @@ static unsigned char xml_res_file_12[] = { 138,213,184,157,255,111,233,106,246,127,200,29,191,29,255,3,97,2,5,212, 74,24,35,58,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_13 = 760; -static unsigned char xml_res_file_13[] = { +static size_t xml_res_size_14 = 871; +static unsigned char xml_res_file_14[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, +72,89,115,0,0,5,116,0,0,5,116,1,101,118,8,205,0,0,0,25,116,69,88,116,83, +111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,2,228,73,68,65,84,88,133,237,150,75,72, +84,81,24,199,127,231,206,157,209,73,197,204,209,28,45,178,22,146,246,176, +22,69,244,32,8,20,90,184,209,130,22,173,108,17,20,66,4,33,21,212,42,90, +69,155,22,37,45,138,172,54,17,20,97,244,66,73,210,168,54,61,40,29,49,95, +57,134,51,230,204,248,154,185,51,247,158,22,218,212,205,113,212,156,177, +22,253,119,223,235,156,31,231,124,231,227,8,206,180,200,3,150,70,214,211, +201,175,122,200,118,94,80,202,239,218,179,58,131,242,53,153,38,95,32,164, +115,227,221,16,71,183,228,114,161,245,43,158,241,8,185,105,42,199,183,229, +113,233,245,32,206,116,43,85,197,89,0,140,133,117,62,12,6,185,215,62,140, +33,65,37,28,98,159,229,9,85,162,201,180,168,79,102,196,4,72,85,21,178,236, +22,54,231,45,161,36,199,206,205,247,67,8,1,206,12,43,181,59,242,184,246, +214,139,103,60,130,99,201,164,125,231,211,48,27,151,219,57,177,125,50,86, +108,79,229,244,174,124,46,191,25,228,216,163,62,84,0,12,3,44,211,246,138, +169,134,14,63,13,29,126,78,237,116,226,76,183,114,248,65,15,0,91,11,210, +226,214,233,82,114,232,126,55,0,213,155,28,212,85,172,226,92,243,192,20, +64,2,245,248,96,17,97,93,98,179,136,25,115,94,246,143,97,17,130,162,236, +212,196,3,156,109,114,211,23,208,88,149,105,227,106,69,97,204,156,148,41, +184,176,33,19,15,208,250,101,148,54,111,144,146,28,251,140,57,85,197,89, +140,106,6,31,61,19,113,0,140,8,40,137,3,83,21,65,103,205,6,150,217,85,84, +69,112,164,161,135,81,205,136,7,160,131,161,129,106,139,25,190,245,225, +27,205,189,35,81,187,205,27,164,172,222,69,159,95,3,160,199,23,162,172, +222,133,107,40,136,123,68,163,188,222,5,192,72,72,167,125,40,136,47,168, +79,130,197,197,142,104,83,248,211,33,186,125,33,186,125,161,168,29,8,233, +60,253,28,136,218,99,97,35,106,7,66,58,238,145,112,204,45,102,63,228,136, +246,19,36,9,154,219,45,39,17,98,238,109,150,36,136,249,245,121,18,32,230, +63,7,98,52,230,94,90,216,39,158,153,210,94,177,142,43,178,50,9,0,49,32, +74,113,81,205,125,83,74,26,19,92,97,118,128,63,31,53,9,186,142,133,141, +226,232,73,252,249,18,11,31,182,17,109,114,106,254,53,0,248,7,0,22,160, +255,0,201,3,144,198,156,210,230,244,128,10,132,151,28,124,38,223,32,89, +184,101,246,204,69,134,17,247,63,49,47,128,90,245,54,53,234,93,147,239, +98,100,63,199,195,71,226,23,198,249,79,252,80,242,123,96,150,137,185,56, +77,24,7,98,241,94,193,12,16,9,255,150,199,82,58,19,44,23,195,160,3,194, +10,22,43,19,164,224,38,103,113,0,42,45,205,92,183,157,55,249,158,203,205, +236,166,238,47,14,34,41,1,16,156,108,148,107,69,47,14,197,111,138,119,25, +78,250,165,3,128,53,98,128,124,197,107,138,247,27,14,186,164,19,128,21, +194,67,161,242,213,20,247,24,75,105,151,43,1,200,21,62,138,148,62,83,220, +47,211,120,175,172,229,59,65,104,30,195,0,95,50,138,0,0,0,0,73,69,78,68, +174,66,96,130}; + +static size_t xml_res_size_15 = 760; +static unsigned char xml_res_file_15[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,193,0,0,4,193,1,17,118,177,117,0,0,0,25,116,69,88,116,83, @@ -803,8 +899,8 @@ static unsigned char xml_res_file_13[] = { 227,72,27,32,165,182,0,48,53,19,172,239,255,22,33,76,128,95,176,208,9,84, 8,125,2,62,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_14 = 4246; -static unsigned char xml_res_file_14[] = { +static size_t xml_res_size_16 = 4246; +static unsigned char xml_res_file_16[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0, 0,0,195,62,97,203,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,14,225,0,0,14,225,1,42,185,74,121,0,0,0,25,116,69,88,116, @@ -1011,8 +1107,8 @@ static unsigned char xml_res_file_14[] = { 113,78,66,0,113,78,66,0,113,206,255,3,145,115,236,65,132,111,52,203,0,0, 0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_15 = 629; -static unsigned char xml_res_file_15[] = { +static size_t xml_res_size_17 = 629; +static unsigned char xml_res_file_17[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, 0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,1,220,0,0,1,220,1,5,161,33,96,0,0,0,25,116,69,88,116,83,111, @@ -1044,8 +1140,8 @@ static unsigned char xml_res_file_15[] = { 42,164,212,231,205,174,120,202,213,174,243,63,218,64,171,61,237,173,51, 184,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_16 = 8746; -static unsigned char xml_res_file_16[] = { +static size_t xml_res_size_18 = 8746; +static unsigned char xml_res_file_18[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,0,0,0,1,0,8,6,0,0,0, 92,114,168,102,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72, 89,115,0,0,29,195,0,0,29,195,1,143,57,51,30,0,0,0,25,116,69,88,116,83,111, @@ -1474,8 +1570,8 @@ static unsigned char xml_res_file_16[] = { 148,74,48,109,0,74,37,152,54,0,165,18,76,27,128,82,9,246,255,1,12,204,192, 135,186,54,132,175,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_17 = 1184; -static unsigned char xml_res_file_17[] = { +static size_t xml_res_size_19 = 1184; +static unsigned char xml_res_file_19[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,3,184,0,0,3,184,1,3,78,7,200,0,0,0,25,116,69,88,116,83,111, @@ -1534,8 +1630,8 @@ static unsigned char xml_res_file_17[] = { 27,185,76,85,185,216,31,47,171,113,41,253,167,117,53,251,63,108,198,111, 199,255,0,65,159,207,163,152,64,70,71,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_18 = 2289; -static unsigned char xml_res_file_18[] = { +static size_t xml_res_size_20 = 2289; +static unsigned char xml_res_file_20[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,64,0,0,0,64,8,6,0,0, 0,170,105,113,222,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,7,113,0,0,7,113,1,220,215,168,124,0,0,0,25,116,69,88,116, @@ -1647,8 +1743,8 @@ static unsigned char xml_res_file_18[] = { 153,255,55,238,250,239,6,191,73,64,67,59,208,208,220,245,9,248,47,129,162, 138,91,51,247,7,138,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_19 = 1387; -static unsigned char xml_res_file_19[] = { +static size_t xml_res_size_21 = 1387; +static unsigned char xml_res_file_21[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83, @@ -1717,8 +1813,8 @@ static unsigned char xml_res_file_19[] = { 101,229,39,141,62,207,255,3,52,228,253,72,11,53,84,78,0,0,0,0,73,69,78, 68,174,66,96,130}; -static size_t xml_res_size_20 = 834; -static unsigned char xml_res_file_20[] = { +static size_t xml_res_size_22 = 834; +static unsigned char xml_res_file_22[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,193,0,0,4,193,1,17,118,177,117,0,0,0,25,116,69,88,116,83, @@ -1760,8 +1856,8 @@ static unsigned char xml_res_file_20[] = { 82,150,72,50,157,133,177,57,249,3,235,9,253,190,72,67,151,122,0,0,0,0,73, 69,78,68,174,66,96,130}; -static size_t xml_res_size_21 = 544; -static unsigned char xml_res_file_21[] = { +static size_t xml_res_size_23 = 544; +static unsigned char xml_res_file_23[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,193,0,0,4,193,1,17,118,177,117,0,0,0,25,116,69,88,116,83, @@ -1788,8 +1884,8 @@ static unsigned char xml_res_file_21[] = { 129,136,31,208,66,252,230,231,167,52,59,37,60,61,150,99,69,100,167,4,224, 27,27,92,198,229,13,213,26,65,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_22 = 680; -static unsigned char xml_res_file_22[] = { +static size_t xml_res_size_24 = 680; +static unsigned char xml_res_file_24[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,68,0,0,4,68,1,25,255,88,16,0,0,0,25,116,69,88,116,83,111, @@ -1823,8 +1919,8 @@ static unsigned char xml_res_file_22[] = { 228,81,126,175,231,234,230,210,81,108,239,109,236,187,166,201,216,133,19, 45,128,63,147,180,205,25,132,236,135,65,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_23 = 934; -static unsigned char xml_res_file_23[] = { +static size_t xml_res_size_25 = 934; +static unsigned char xml_res_file_25[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83, @@ -1871,8 +1967,8 @@ static unsigned char xml_res_file_23[] = { 188,96,189,170,254,1,114,143,78,253,94,211,73,63,204,123,223,0,202,222, 98,133,128,94,40,169,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_24 = 1152; -static unsigned char xml_res_file_24[] = { +static size_t xml_res_size_26 = 1152; +static unsigned char xml_res_file_26[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,196,0,0,4,196,1,60,204,212,131,0,0,0,25,116,69,88,116,83, @@ -1930,8 +2026,8 @@ static unsigned char xml_res_file_24[] = { 239,128,186,140,71,190,23,191,207,204,36,239,127,184,206,178,106,141,44, 108,8,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_25 = 637; -static unsigned char xml_res_file_25[] = { +static size_t xml_res_size_27 = 637; +static unsigned char xml_res_file_27[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,6,40,0,0,6,40,1,59,154,118,221,0,0,0,25,116,69,88,116,83, @@ -1964,8 +2060,8 @@ static unsigned char xml_res_file_25[] = { 99,128,162,1,254,2,87,167,156,99,57,199,119,147,0,0,0,0,73,69,78,68,174, 66,96,130}; -static size_t xml_res_size_26 = 708; -static unsigned char xml_res_file_26[] = { +static size_t xml_res_size_28 = 708; +static unsigned char xml_res_file_28[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,163,0,0,5,163,1,164,52,119,130,0,0,0,25,116,69,88,116,83, @@ -2001,8 +2097,8 @@ static unsigned char xml_res_file_26[] = { 143,76,0,195,36,223,106,159,63,132,231,183,174,19,196,144,63,0,0,0,0,73, 69,78,68,174,66,96,130}; -static size_t xml_res_size_27 = 915; -static unsigned char xml_res_file_27[] = { +static size_t xml_res_size_29 = 915; +static unsigned char xml_res_file_29[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,109,0,0,4,109,1,125,26,147,5,0,0,0,25,116,69,88,116,83, @@ -2048,8 +2144,8 @@ static unsigned char xml_res_file_27[] = { 239,136,213,133,111,102,88,205,181,31,221,164,248,13,195,123,60,251,33, 106,248,255,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_28 = 1139; -static unsigned char xml_res_file_28[] = { +static size_t xml_res_size_30 = 1139; +static unsigned char xml_res_file_30[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,63,0,0,5,63,1,19,100,100,172,0,0,0,25,116,69,88,116,83, @@ -2106,8 +2202,8 @@ static unsigned char xml_res_file_28[] = { 50,253,5,70,162,109,217,34,255,2,107,225,84,76,2,118,23,86,0,0,0,0,73,69, 78,68,174,66,96,130}; -static size_t xml_res_size_29 = 1110; -static unsigned char xml_res_file_29[] = { +static size_t xml_res_size_31 = 1110; +static unsigned char xml_res_file_31[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,59,0,0,5,59,1,236,153,227,190,0,0,0,25,116,69,88,116,83, @@ -2162,8 +2258,8 @@ static unsigned char xml_res_file_29[] = { 7,194,73,148,111,80,239,83,170,155,51,24,9,255,156,68,216,127,65,255,70, 162,172,242,156,128,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_30 = 555; -static unsigned char xml_res_file_30[] = { +static size_t xml_res_size_32 = 555; +static unsigned char xml_res_file_32[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,137,0,0,5,137,1,109,104,157,250,0,0,0,25,116,69,88,116, @@ -2191,8 +2287,8 @@ static unsigned char xml_res_file_30[] = { 208,3,244,74,121,255,72,134,71,142,100,14,25,147,66,98,227,246,202,248, 15,58,85,192,175,251,92,135,114,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_31 = 743; -static unsigned char xml_res_file_31[] = { +static size_t xml_res_size_33 = 743; +static unsigned char xml_res_file_33[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,186,0,0,5,186,1,27,237,141,201,0,0,0,25,116,69,88,116,83, @@ -2230,8 +2326,8 @@ static unsigned char xml_res_file_31[] = { 127,199,126,1,226,42,223,28,85,35,230,39,0,0,0,0,73,69,78,68,174,66,96, 130}; -static size_t xml_res_size_32 = 1110; -static unsigned char xml_res_file_32[] = { +static size_t xml_res_size_34 = 1110; +static unsigned char xml_res_file_34[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,4,198,0,0,4,198,1,67,50,23,10,0,0,0,25,116,69,88,116,83,111, @@ -2287,8 +2383,8 @@ static unsigned char xml_res_file_32[] = { 86,95,47,99,128,127,0,231,244,140,94,3,164,35,138,0,0,0,0,73,69,78,68,174, 66,96,130}; -static size_t xml_res_size_33 = 914; -static unsigned char xml_res_file_33[] = { +static size_t xml_res_size_35 = 914; +static unsigned char xml_res_file_35[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,7,0,0,5,7,1,236,210,93,151,0,0,0,25,116,69,88,116,83,111, @@ -2334,8 +2430,8 @@ static unsigned char xml_res_file_33[] = { 132,196,232,127,195,255,30,224,55,133,61,15,69,51,241,172,123,0,0,0,0,73, 69,78,68,174,66,96,130}; -static size_t xml_res_size_34 = 759; -static unsigned char xml_res_file_34[] = { +static size_t xml_res_size_36 = 759; +static unsigned char xml_res_file_36[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, 0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, 72,89,115,0,0,5,163,0,0,5,163,1,164,52,119,130,0,0,0,25,116,69,88,116,83, @@ -2373,8 +2469,8 @@ static unsigned char xml_res_file_34[] = { 125,92,181,157,226,96,91,87,53,118,180,232,47,234,15,114,76,236,98,147, 84,227,24,0,0,0,0,73,69,78,68,174,66,96,130}; -static size_t xml_res_size_35 = 3769; -static unsigned char xml_res_file_35[] = { +static size_t xml_res_size_37 = 3987; +static unsigned char xml_res_file_37[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, 110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, 115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, @@ -2443,123 +2539,134 @@ static unsigned char xml_res_file_35[] = { 36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95, 102,105,116,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32, 60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, -109,97,112,34,32,110,97,109,101,61,34,103,117,105,100,101,51,50,34,62,77, -97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36, -100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,103, -117,105,100,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10, -32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105, -116,109,97,112,34,32,110,97,109,101,61,34,105,109,112,51,50,34,62,77,97, -105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100, -97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,105,109, -112,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, +109,97,112,34,32,110,97,109,101,61,34,102,114,101,113,82,101,115,112,51, +50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99, +112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111, +110,95,102,114,101,113,82,101,115,112,51,50,46,112,110,103,60,47,111,98, +106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, +61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,103,117, +105,100,101,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109, +97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95, +114,105,98,98,111,110,95,103,117,105,100,101,51,50,46,112,110,103,60,47, +111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, +104,97,114,109,68,105,115,116,51,50,34,62,77,97,105,110,70,114,97,109,101, +66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97, +103,101,115,95,114,105,98,98,111,110,95,104,97,114,109,68,105,115,116,51, +50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, +32,110,97,109,101,61,34,105,109,112,51,50,34,62,77,97,105,110,70,114,97, +109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105, +109,97,103,101,115,95,114,105,98,98,111,110,95,105,109,112,51,50,46,112, +110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116, +32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,108,111,103,111,49,50,56,34,62,77,97,105,110,70,114,97,109,101, +66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97, +103,101,115,95,108,111,103,111,49,50,56,46,112,110,103,60,47,111,98,106, +101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,108,111,103, +111,49,54,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115, +46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,108,111,103, +111,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, 98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,108,111,103,111,49,50,56,34,62,77,97,105, +112,34,32,110,97,109,101,61,34,108,111,103,111,50,53,54,34,62,77,97,105, 110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97, -116,97,95,105,109,97,103,101,115,95,108,111,103,111,49,50,56,46,112,110, +116,97,95,105,109,97,103,101,115,95,108,111,103,111,50,53,54,46,112,110, 103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, 99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, -101,61,34,108,111,103,111,49,54,34,62,77,97,105,110,70,114,97,109,101,66, +101,61,34,108,111,103,111,51,50,34,62,77,97,105,110,70,114,97,109,101,66, 105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103, -101,115,95,108,111,103,111,49,54,46,112,110,103,60,47,111,98,106,101,99, +101,115,95,108,111,103,111,51,50,46,112,110,103,60,47,111,98,106,101,99, 116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, -120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,108,111,103,111,50, -53,54,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46, -99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,108,111,103,111, -50,53,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,108,111,103,111,51,50,34,62,77,97,105,110, -70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116, -97,95,105,109,97,103,101,115,95,108,111,103,111,51,50,46,112,110,103,60, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,108,111,103,111,54, +52,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99, +112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,108,111,103,111,54, +52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, +101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, +32,110,97,109,101,61,34,109,111,118,101,51,50,34,62,77,97,105,110,70,114, +97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95, +105,109,97,103,101,115,95,114,105,98,98,111,110,95,109,111,118,101,51,50, +46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101, +99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, +97,109,101,61,34,110,101,119,51,50,34,62,77,97,105,110,70,114,97,109,101, +66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97, +103,101,115,95,114,105,98,98,111,110,95,110,101,119,51,50,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,111,112,101,110,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105, +116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101, +115,95,114,105,98,98,111,110,95,111,112,101,110,51,50,46,112,110,103,60, 47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108, 97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,108,111,103,111,54,52,34,62,77,97,105,110,70,114,97,109,101,66,105,116, -109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115, -95,108,111,103,111,54,52,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,34,32,110,97,109,101,61,34,109,111,118,101,51,50,34, -62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112, -112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110, -95,109,111,118,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62, -10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, -105,116,109,97,112,34,32,110,97,109,101,61,34,110,101,119,51,50,34,62,77, -97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36, -100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,110, -101,119,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109, -97,112,34,32,110,97,109,101,61,34,111,112,101,110,51,50,34,62,77,97,105, +34,112,97,115,116,101,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105, +116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101, +115,95,114,105,98,98,111,110,95,112,97,115,116,101,51,50,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,112,97,117,115,101,83,116,111,112,112,101,100,51,50,34,62,77,97,105, 110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97, -116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,111,112,101, -110,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,112,97,115,116,101,51,50,34,62,77,97,105, +116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,112,97,117, +115,101,83,116,111,112,112,101,100,51,50,46,112,110,103,60,47,111,98,106, +101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61, +34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,108,97, +121,83,116,111,112,112,101,100,51,50,34,62,77,97,105,110,70,114,97,109, +101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109, +97,103,101,115,95,114,105,98,98,111,110,95,112,108,97,121,83,116,111,112, +112,101,100,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32, +60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, +109,97,112,34,32,110,97,109,101,61,34,112,111,119,101,114,70,76,111,119, +51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46, +99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98, +111,110,95,112,111,119,101,114,70,76,111,119,51,50,46,112,110,103,60,47, +111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, +114,101,100,111,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116, +109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115, +95,114,105,98,98,111,110,95,114,101,100,111,51,50,46,112,110,103,60,47, +111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97, +115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34, +114,101,115,101,116,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105, +116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101, +115,95,114,105,98,98,111,110,95,114,101,115,101,116,51,50,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,114,111,116,97,116,101,67,108,111,99,107,51,50,34,62,77,97,105,110, +70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116, +97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,114,111,116,97, +116,101,67,108,111,99,107,51,50,46,112,110,103,60,47,111,98,106,101,99, +116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,114,111,116,97,116, +101,67,111,117,110,116,101,114,67,108,111,99,107,51,50,34,62,77,97,105, 110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97, -116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,112,97,115, -116,101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109, -97,112,34,32,110,97,109,101,61,34,112,97,117,115,101,83,116,111,112,112, -101,100,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112, -115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105, -98,98,111,110,95,112,97,117,115,101,83,116,111,112,112,101,100,51,50,46, +116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,114,111,116, +97,116,101,67,111,117,110,116,101,114,67,108,111,99,107,51,50,46,112,110, +103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32, +99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109, +101,61,34,115,97,118,101,51,50,34,62,77,97,105,110,70,114,97,109,101,66, +105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103, +101,115,95,114,105,98,98,111,110,95,115,97,118,101,51,50,46,112,110,103, +60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99, +108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101, +61,34,115,97,118,101,65,115,51,50,34,62,77,97,105,110,70,114,97,109,101, +66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97, +103,101,115,95,114,105,98,98,111,110,95,115,97,118,101,65,115,51,50,46, 112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, 116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, -97,109,101,61,34,112,108,97,121,83,116,111,112,112,101,100,51,50,34,62, +97,109,101,61,34,115,101,116,116,105,110,103,115,51,50,34,62,77,97,105, +110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97, +116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,115,101,116, +116,105,110,103,115,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62, +10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66, +105,116,109,97,112,34,32,110,97,109,101,61,34,115,110,97,112,51,50,34,62, 77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112, 36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95, -112,108,97,121,83,116,111,112,112,101,100,51,50,46,112,110,103,60,47,111, -98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115, -115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112, -111,119,101,114,70,76,111,119,51,50,34,62,77,97,105,110,70,114,97,109,101, -66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97, -103,101,115,95,114,105,98,98,111,110,95,112,111,119,101,114,70,76,111,119, -51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, -34,32,110,97,109,101,61,34,114,101,100,111,51,50,34,62,77,97,105,110,70, -114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97, -95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,114,101,100,111,51, -50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106, -101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34, -32,110,97,109,101,61,34,114,101,115,101,116,51,50,34,62,77,97,105,110,70, -114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97, -95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,114,101,115,101,116, -51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98, -106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112, -34,32,110,97,109,101,61,34,114,111,116,97,116,101,67,108,111,99,107,51, -50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99, -112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111, -110,95,114,111,116,97,116,101,67,108,111,99,107,51,50,46,112,110,103,60, -47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108, -97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, -34,114,111,116,97,116,101,67,111,117,110,116,101,114,67,108,111,99,107, -51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46, -99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98, -111,110,95,114,111,116,97,116,101,67,111,117,110,116,101,114,67,108,111, -99,107,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60, -111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109, -97,112,34,32,110,97,109,101,61,34,115,97,118,101,51,50,34,62,77,97,105, -110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100,97, -116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,115,97,118, -101,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111, -98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97, -112,34,32,110,97,109,101,61,34,115,97,118,101,65,115,51,50,34,62,77,97, -105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100, -97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,115,97, -118,101,65,115,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32, +115,110,97,112,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32, 32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, -109,97,112,34,32,110,97,109,101,61,34,115,101,116,116,105,110,103,115,51, -50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99, -112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111, -110,95,115,101,116,116,105,110,103,115,51,50,46,112,110,103,60,47,111,98, -106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115, -61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,110, -97,112,51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112, -115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105, -98,98,111,110,95,115,110,97,112,51,50,46,112,110,103,60,47,111,98,106,101, -99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, -119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,117,110,100,111, -51,50,34,62,77,97,105,110,70,114,97,109,101,66,105,116,109,97,112,115,46, -99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,114,105,98,98, -111,110,95,117,110,100,111,51,50,46,112,110,103,60,47,111,98,106,101,99, -116,62,10,60,47,114,101,115,111,117,114,99,101,62,10}; +109,97,112,34,32,110,97,109,101,61,34,117,110,100,111,51,50,34,62,77,97, +105,110,70,114,97,109,101,66,105,116,109,97,112,115,46,99,112,112,36,100, +97,116,97,95,105,109,97,103,101,115,95,114,105,98,98,111,110,95,117,110, +100,111,51,50,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114, +101,115,111,117,114,99,101,62,10}; void wxC9ED9InitBitmapResources() { @@ -2586,29 +2693,31 @@ void wxC9ED9InitBitmapResources() XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_fault32.png"), xml_res_file_9, xml_res_size_9, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_faultPower32.png"), xml_res_file_10, xml_res_size_10, wxT("image/png")); XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_fit32.png"), xml_res_file_11, xml_res_size_11, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_guide32.png"), xml_res_file_12, xml_res_size_12, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_imp32.png"), xml_res_file_13, xml_res_size_13, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo128.png"), xml_res_file_14, xml_res_size_14, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo16.png"), xml_res_file_15, xml_res_size_15, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo256.png"), xml_res_file_16, xml_res_size_16, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo32.png"), xml_res_file_17, xml_res_size_17, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo64.png"), xml_res_file_18, xml_res_size_18, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_move32.png"), xml_res_file_19, xml_res_size_19, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_new32.png"), xml_res_file_20, xml_res_size_20, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_open32.png"), xml_res_file_21, xml_res_size_21, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_paste32.png"), xml_res_file_22, xml_res_size_22, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_pauseStopped32.png"), xml_res_file_23, xml_res_size_23, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_playStopped32.png"), xml_res_file_24, xml_res_size_24, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_powerFLow32.png"), xml_res_file_25, xml_res_size_25, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_redo32.png"), xml_res_file_26, xml_res_size_26, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_reset32.png"), xml_res_file_27, xml_res_size_27, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_rotateClock32.png"), xml_res_file_28, xml_res_size_28, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_rotateCounterClock32.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_save32.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_saveAs32.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_settings32.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_snap32.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_undo32.png"), xml_res_file_34, xml_res_size_34, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc"), xml_res_file_35, xml_res_size_35, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/MainFrameBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_freqResp32.png"), xml_res_file_12, xml_res_size_12, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_guide32.png"), xml_res_file_13, xml_res_size_13, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_harmDist32.png"), xml_res_file_14, xml_res_size_14, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_imp32.png"), xml_res_file_15, xml_res_size_15, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo128.png"), xml_res_file_16, xml_res_size_16, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo16.png"), xml_res_file_17, xml_res_size_17, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo256.png"), xml_res_file_18, xml_res_size_18, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo32.png"), xml_res_file_19, xml_res_size_19, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_logo64.png"), xml_res_file_20, xml_res_size_20, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_move32.png"), xml_res_file_21, xml_res_size_21, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_new32.png"), xml_res_file_22, xml_res_size_22, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_open32.png"), xml_res_file_23, xml_res_size_23, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_paste32.png"), xml_res_file_24, xml_res_size_24, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_pauseStopped32.png"), xml_res_file_25, xml_res_size_25, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_playStopped32.png"), xml_res_file_26, xml_res_size_26, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_powerFLow32.png"), xml_res_file_27, xml_res_size_27, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_redo32.png"), xml_res_file_28, xml_res_size_28, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_reset32.png"), xml_res_file_29, xml_res_size_29, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_rotateClock32.png"), xml_res_file_30, xml_res_size_30, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_rotateCounterClock32.png"), xml_res_file_31, xml_res_size_31, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_save32.png"), xml_res_file_32, xml_res_size_32, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_saveAs32.png"), xml_res_file_33, xml_res_size_33, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_settings32.png"), xml_res_file_34, xml_res_size_34, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_snap32.png"), xml_res_file_35, xml_res_size_35, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$data_images_ribbon_undo32.png"), xml_res_file_36, xml_res_size_36, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/MainFrameBitmaps.cpp$C__Users_thale_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc"), xml_res_file_37, xml_res_size_37, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/MainFrameBitmaps.cpp$C__Users_thale_Documents_GitHub_PSP_Project_MainFrameBitmaps.xrc")); } diff --git a/Project/MainFrameBitmaps.xrc b/Project/MainFrameBitmaps.xrc index 8f58aaf..b25081d 100644 --- a/Project/MainFrameBitmaps.xrc +++ b/Project/MainFrameBitmaps.xrc @@ -13,7 +13,9 @@ <object class="wxBitmap" name="fault32">data\images\ribbon\fault32.png</object> <object class="wxBitmap" name="faultPower32">data\images\ribbon\faultPower32.png</object> <object class="wxBitmap" name="fit32">data\images\ribbon\fit32.png</object> + <object class="wxBitmap" name="freqResp32">data\images\ribbon\freqResp32.png</object> <object class="wxBitmap" name="guide32">data\images\ribbon\guide32.png</object> + <object class="wxBitmap" name="harmDist32">data\images\ribbon\harmDist32.png</object> <object class="wxBitmap" name="imp32">data\images\ribbon\imp32.png</object> <object class="wxBitmap" name="logo128">data\images\logo128.png</object> <object class="wxBitmap" name="logo16">data\images\logo16.png</object> diff --git a/Project/PowerQuality.cpp b/Project/PowerQuality.cpp new file mode 100644 index 0000000..33acbe6 --- /dev/null +++ b/Project/PowerQuality.cpp @@ -0,0 +1,250 @@ +#include "PowerQuality.h" + +PowerQuality::PowerQuality() {} + +PowerQuality::~PowerQuality() {} + +PowerQuality::PowerQuality(std::vector<Element*> elementList) { GetElementsFromList(elementList); } + +void PowerQuality::CalculateHarmonicYbusList(double systemPowerBase) +{ + // Clear and fill with zeros all the harmonic Ybuses + for(auto it = m_harmYbusList.begin(), itEnd = m_harmYbusList.end(); it != itEnd; ++it) { + HarmonicYbus harmYBus = *it; + harmYBus.yBus.clear(); + for(unsigned int i = 0; i < m_busList.size(); i++) { + std::vector<std::complex<double> > line; + for(unsigned int j = 0; j < m_busList.size(); j++) { line.push_back(std::complex<double>(0.0, 0.0)); } + harmYBus.yBus.push_back(line); + } + *it = harmYBus; + } + + // Fill all Ybuses + for(auto itYbus = m_harmYbusList.begin(), itYbusEnd = m_harmYbusList.end(); itYbus != itYbusEnd; ++itYbus) { + HarmonicYbus harmYBus = *itYbus; + // Load + for(auto it = m_loadList.begin(), itEnd = m_loadList.end(); it != itEnd; ++it) { + Load* load = *it; + if(load->IsOnline()) { + int n = static_cast<Bus*>(load->GetParentList()[0])->GetElectricalData().number; + LoadElectricalData data = load->GetPUElectricalData(systemPowerBase); + if(data.loadType == CONST_IMPEDANCE) { + std::complex<double> yLoad = + std::complex<double>(data.activePower, -data.reactivePower / harmYBus.order); + harmYBus.yBus[n][n] += yLoad; + } + } + } + + // Capacitor + for(auto it = m_capacitorList.begin(), itEnd = m_capacitorList.end(); it != itEnd; ++it) { + Capacitor* capacitor = *it; + if(capacitor->IsOnline()) { + int n = static_cast<Bus*>(capacitor->GetParentList()[0])->GetElectricalData().number; + CapacitorElectricalData data = capacitor->GetPUElectricalData(systemPowerBase); + harmYBus.yBus[n][n] += std::complex<double>(0.0, data.reactivePower) * harmYBus.order; + } + } + + // Inductor + for(auto it = m_inductorList.begin(), itEnd = m_inductorList.end(); it != itEnd; ++it) { + Inductor* inductor = *it; + if(inductor->IsOnline()) { + int n = static_cast<Bus*>(inductor->GetParentList()[0])->GetElectricalData().number; + InductorElectricalData data = inductor->GetPUElectricalData(systemPowerBase); + harmYBus.yBus[n][n] += std::complex<double>(0.0, -data.reactivePower) / harmYBus.order; + } + } + + // Power line + for(auto it = m_lineList.begin(), itEnd = m_lineList.end(); it != itEnd; ++it) { + Line* line = *it; + if(line->IsOnline()) { + LineElectricalData data = line->GetPUElectricalData(systemPowerBase); + + int n1 = static_cast<Bus*>(line->GetParentList()[0])->GetElectricalData().number; + int n2 = static_cast<Bus*>(line->GetParentList()[1])->GetElectricalData().number; + + harmYBus.yBus[n1][n2] -= + 1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + harmYBus.yBus[n2][n1] -= + 1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + + harmYBus.yBus[n1][n1] += + 1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + harmYBus.yBus[n2][n2] += + 1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + + harmYBus.yBus[n1][n1] += std::complex<double>(0.0, (data.capSusceptance * harmYBus.order) / 2.0); + harmYBus.yBus[n2][n2] += std::complex<double>(0.0, (data.capSusceptance * harmYBus.order) / 2.0); + } + } + + // Transformer + for(auto it = m_transformerList.begin(), itEnd = m_transformerList.end(); it != itEnd; ++it) { + Transformer* transformer = *it; + + if(transformer->IsOnline()) { + TransformerElectricalData data = transformer->GetPUElectricalData(systemPowerBase); + + int n1 = static_cast<Bus*>(transformer->GetParentList()[0])->GetElectricalData().number; + int n2 = static_cast<Bus*>(transformer->GetParentList()[1])->GetElectricalData().number; + + // If the transformer have nominal turns ratio (1.0) and no phase shifting, it will be modelled as + // series impedance. + if(data.turnsRatio == 1.0 && data.phaseShift == 0.0) { + harmYBus.yBus[n1][n2] += + -1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + harmYBus.yBus[n2][n1] += + -1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + + harmYBus.yBus[n1][n1] += + 1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + harmYBus.yBus[n2][n2] += + 1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + } + // If the transformer have no-nominal turn ratio and/or phase shifting, it will be modelled in a + // different way (see references). + //[Ref. 1: Elementos de analise de sistemas de potencia - Stevenson - pg. 232] + //[Ref. 2: + // http://www.ee.washington.edu/research/real/Library/Reports/Tap_Adjustments_in_AC_Load_Flows.pdf] + // [Ref. 3: http://www.columbia.edu/~dano/courses/power/notes/power/andersson1.pdf] + else { + // Complex turns ratio + double radPhaseShift = wxDegToRad(data.phaseShift); + std::complex<double> a = std::complex<double>(data.turnsRatio * std::cos(radPhaseShift), + -data.turnsRatio * std::sin(radPhaseShift)); + + // Transformer admitance + std::complex<double> y = 1.0 / std::complex<double>(data.resistance, data.indReactance * harmYBus.order); + + harmYBus.yBus[n1][n1] += y / (std::pow(std::abs(a), 2.0)); + harmYBus.yBus[n1][n2] += -(y / std::conj(a)); + harmYBus.yBus[n2][n1] += -(y / a); + harmYBus.yBus[n2][n2] += y; + } + } + } + + // Synchronous generator + for(auto it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) { + SyncGenerator* syncGenerator = *it; + if(syncGenerator->IsOnline()) { + int n = static_cast<Bus*>(syncGenerator->GetParentList()[0])->GetElectricalData().number; + SyncGeneratorElectricalData data = syncGenerator->GetPUElectricalData(systemPowerBase); + harmYBus.yBus[n][n] += + 1.0 / std::complex<double>(data.positiveResistance, data.positiveReactance * harmYBus.order); + } + } + // Synchronous motor + for(auto it = m_syncMotorList.begin(), itEnd = m_syncMotorList.end(); it != itEnd; ++it) { + SyncMotor* syncMotor = *it; + if(syncMotor->IsOnline()) { + int n = static_cast<Bus*>(syncMotor->GetParentList()[0])->GetElectricalData().number; + SyncMotorElectricalData data = syncMotor->GetPUElectricalData(systemPowerBase); + harmYBus.yBus[n][n] += + 1.0 / std::complex<double>(data.positiveResistance, data.positiveReactance * harmYBus.order); + } + } + *itYbus = harmYBus; + } +} + +bool PowerQuality::CalculateDistortions(double systemPowerBase) +{ + // Get harmonic orders + m_harmYbusList.clear(); + std::vector<double> harmOrders = GetHarmonicOrdersList(); + + // Fill the Ybuses + for(unsigned int i = 0; i < harmOrders.size(); ++i) { + HarmonicYbus newYbus; + newYbus.order = harmOrders[i]; + m_harmYbusList.push_back(newYbus); + } + CalculateHarmonicYbusList(systemPowerBase); + + // Initialize current arrays with zeros + std::vector<std::vector<std::complex<double> > > iHarmInjList; + for(unsigned int i = 0; i < harmOrders.size(); i++) { + std::vector<std::complex<double> > line; + for(unsigned int j = 0; j < m_busList.size(); j++) { line.push_back(std::complex<double>(0.0, 0.0)); } + iHarmInjList.push_back(line); + } + + // Fill the current array + for(unsigned int i = 0; i < harmOrders.size(); ++i) { + for(auto it = m_harmCurrentList.begin(), itEnd = m_harmCurrentList.end(); it != itEnd; ++it) { + HarmCurrent* harmCurrent = *it; + if(harmCurrent->IsOnline()) { + // Get only the current order in analysis + for(unsigned int k = 0; k < harmCurrent->GetElectricalData().harmonicOrder.size(); ++k) { + if(harmCurrent->GetElectricalData().harmonicOrder[k] == static_cast<int>(harmOrders[i])) { + Bus* parentBus = static_cast<Bus*>(harmCurrent->GetParentList()[0]); + auto busData = parentBus->GetElectricalData(); + int j = busData.number; + + // Bus voltage + double voltage = busData.nominalVoltage; + if(busData.nominalVoltageUnit == UNIT_kV) voltage *= 1e3; + + auto puData = harmCurrent->GetPUElectricalData(systemPowerBase, voltage); + + iHarmInjList[i][j] += std::complex<double>( + puData.injHarmCurrent[k] * std::cos(wxDegToRad(puData.injHarmAngle[k])), + puData.injHarmCurrent[k] * std::sin(wxDegToRad(puData.injHarmAngle[k]))); + } + } + } + } + } + + // Calculate harmonic voltages + std::vector<std::vector<std::complex<double> > > vHarmList; + for(unsigned int i = 0; i < m_harmYbusList.size(); ++i) { + vHarmList.push_back(GaussianElimination(m_harmYbusList[i].yBus, iHarmInjList[i])); + } + + wxString volt = ""; + for(unsigned int i = 0; i < vHarmList.size(); ++i) { + wxString orderStr = ""; + for(unsigned int j = 0; j < vHarmList[i].size(); ++j) { + orderStr += wxString::Format("%f; ", std::abs(vHarmList[i][j])); + } + volt += orderStr + "\n"; + } + wxMessageBox(volt); + + return true; +} + +std::vector<double> PowerQuality::GetHarmonicOrdersList() +{ + std::vector<int> harmOrders; + auto harmCurrentList = GetHarmCurrentList(); + // Check all harmonic sources and get all harmonic orders in the system + for(auto it = harmCurrentList.begin(), itEnd = harmCurrentList.end(); it != itEnd; ++it) { + HarmCurrent* harmCurrent = *it; + if(harmCurrent->IsOnline()) { + auto data = harmCurrent->GetElectricalData(); + for(unsigned int i = 0; i < data.harmonicOrder.size(); ++i) { + int order = data.harmonicOrder[i]; + // Check if this harmonic order have been added already + bool newOrder = true; + for(unsigned int j = 0; j < harmOrders.size(); ++j) { + if(order == harmOrders[j]) { + newOrder = false; + break; + } + } + if(newOrder) harmOrders.push_back(order); + } + } + } + std::vector<double> doubleHarmOrder; + for(unsigned int i = 0; i < harmOrders.size(); ++i) { + doubleHarmOrder.push_back(static_cast<double>(harmOrders[i])); + } + return doubleHarmOrder; +} diff --git a/Project/PowerQuality.h b/Project/PowerQuality.h new file mode 100644 index 0000000..ad47884 --- /dev/null +++ b/Project/PowerQuality.h @@ -0,0 +1,37 @@ +#ifndef POWERQUALITY_H +#define POWERQUALITY_H + +#include "ElectricCalculation.h" + +#include <wx/intl.h> //_() +#include <wx/string.h> + +/** + * @class PowerQuality + * @author Thales Lima Oliveira <thales@ufu.br> + * @date 24/04/2019 + * @brief Responsible for the power quality calculations. + * @file PowerQuality.h + */ +class PowerQuality : public ElectricCalculation +{ + public: + struct HarmonicYbus { + double order; + std::vector<std::vector<std::complex<double> > > yBus; + }; + + PowerQuality(); + PowerQuality(std::vector<Element*> elementList); + ~PowerQuality(); + + virtual void CalculateHarmonicYbusList(double systemPowerBase = 100e6); + + virtual bool CalculateDistortions(double systemPowerBase = 100e6); + virtual std::vector<double> GetHarmonicOrdersList(); + + protected: + std::vector<HarmonicYbus> m_harmYbusList; +}; + +#endif // POWERQUALITY_H diff --git a/Project/Project.project b/Project/Project.project index 728e0b2..7940693 100644 --- a/Project/Project.project +++ b/Project/Project.project @@ -11,6 +11,7 @@ <VirtualDirectory Name="src"> <VirtualDirectory Name="model"> <VirtualDirectory Name="simulation"> + <File Name="PowerQuality.cpp"/> <File Name="ElectricCalculation.cpp"/> <File Name="PowerFlow.cpp"/> <File Name="Fault.cpp"/> @@ -43,6 +44,7 @@ <File Name="Text.cpp"/> </VirtualDirectory> <VirtualDirectory Name="power"> + <File Name="HarmCurrent.cpp"/> <File Name="Branch.cpp"/> <File Name="Bus.cpp"/> <File Name="Capacitor.cpp"/> @@ -69,6 +71,7 @@ </VirtualDirectory> </VirtualDirectory> <VirtualDirectory Name="view"> + <File Name="GraphAutoLayout.cpp"/> <VirtualDirectory Name="wxMathPlot"> <File Name="wxMathPlot/mathplot.cpp"/> </VirtualDirectory> @@ -101,6 +104,7 @@ <File Name="TextForm.cpp"/> </VirtualDirectory> <VirtualDirectory Name="power element"> + <File Name="HarmCurrentForm.cpp"/> <File Name="BusForm.cpp"/> <File Name="GeneratorStabForm.cpp"/> <File Name="IndMotorForm.cpp"/> @@ -131,6 +135,7 @@ <VirtualDirectory Name="include"> <VirtualDirectory Name="model"> <VirtualDirectory Name="simulation"> + <File Name="PowerQuality.h"/> <File Name="ElectricCalculation.h"/> <File Name="PowerFlow.h"/> <File Name="Fault.h"/> @@ -170,6 +175,7 @@ <File Name="MathExpression.h"/> </VirtualDirectory> <VirtualDirectory Name="power"> + <File Name="HarmCurrent.h"/> <File Name="Branch.h"/> <File Name="Bus.h"/> <File Name="Capacitor.h"/> @@ -193,6 +199,7 @@ <File Name="PropertiesData.h"/> </VirtualDirectory> <VirtualDirectory Name="view"> + <File Name="GraphAutoLayout.h"/> <VirtualDirectory Name="wxMathPlot"> <File Name="wxMathPlot/mathplot.h"/> </VirtualDirectory> @@ -222,6 +229,7 @@ <File Name="TextForm.h"/> </VirtualDirectory> <VirtualDirectory Name="power"> + <File Name="HarmCurrentForm.h"/> <File Name="BusForm.h"/> <File Name="GeneratorStabForm.h"/> <File Name="IndMotorForm.h"/> @@ -508,12 +516,12 @@ </Completion> </Configuration> <Configuration Name="Release_Windows_x64" CompilerType="MinGW ( TDM-GCC-64 )" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append"> - <Compiler Options="-O3;-Wall;$(shell wx-config --cflags);-std=gnu++11" C_Options="-O3;-Wall" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0"> + <Compiler Options="-O2;-Wall;$(shell wx-config --cflags);-std=gnu++11" C_Options="-O2;-Wall" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0"> <IncludePath Value="."/> <Preprocessor Value="NDEBUG"/> <Preprocessor Value="UNICODE"/> </Compiler> - <Linker Options="$(shell wx-config --libs std,ribbon,aui,propgrid,richtext,stc,gl);-mwindows" Required="yes"/> + <Linker Options="$(shell wx-config --libs std,adv,ribbon,aui,propgrid,richtext,stc,gl);-mwindows" Required="yes"/> <ResourceCompiler Options="$(shell wx-config --rcflags)" Required="no"/> <General OutputFile="$(IntermediateDirectory)/pspufu" IntermediateDirectory="./Release_Windows_x64" Command="./pspufu" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="no" IsGUIProgram="yes" IsEnabled="yes"/> <BuildSystem Name="Default"/> diff --git a/Project/PropertiesForm.wxcp b/Project/PropertiesForm.wxcp index 87420ee..3962cd0 100644 --- a/Project/PropertiesForm.wxcp +++ b/Project/PropertiesForm.wxcp @@ -1,7 +1,7 @@ { "metadata": { "m_generatedFilesDir": ".", - "m_objCounter": 791, + "m_objCounter": 815, "m_includeFiles": [], "m_bitmapFunction": "wxCDAD0InitBitmapResources", "m_bitmapsFile": "PropertiesFormBitmaps.cpp", @@ -10030,6 +10030,711 @@ }] }] }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelMatpower" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Matpower" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl2_2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl3_3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextBaseMFile" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": ".M file" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4431, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxFLP_DEFAULT_STYLE", "wxFLP_SMALL"], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "300,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_filePickerMatpowerM" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "" + }, { + "type": "string", + "m_label": "Message:", + "m_value": "Select a Matpower M file" + }, { + "type": "string", + "m_label": "Wildcard:", + "m_value": "M files (*.m)|*.m" + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4449, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "staticBoxLvl3_3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["Vertical", "Horizontal"] + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Import options" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextScale" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Scale" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlScale" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "200" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }, { + "m_type": 4401, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_5" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4405, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxTOP", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_staticTextIteration" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "multi-string", + "m_label": "Label:", + "m_value": "Iterations" + }, { + "type": "string", + "m_label": "Wrap:", + "m_value": "-1" + }], + "m_events": [], + "m_children": [] + }, { + "m_type": 4406, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxLEFT", "wxRIGHT", "wxBOTTOM", "wxEXPAND", "wxALIGN_CENTER_VERTICAL"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_textCtrlIterations" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Value:", + "m_value": "100" + }, { + "type": "string", + "m_label": "Text Hint", + "m_value": "" + }, { + "type": "string", + "m_label": "Max Length:", + "m_value": "0" + }, { + "type": "bool", + "m_label": "Auto Complete Directories:", + "m_value": false + }, { + "type": "bool", + "m_label": "Auto Complete Files:", + "m_value": false + }], + "m_events": [], + "m_children": [] + }] + }] + }] + }] }] }, { "m_type": 4401, diff --git a/Project/PropertiesFormBase.cpp b/Project/PropertiesFormBase.cpp index 3d2a7a0..62f2c0d 100644 --- a/Project/PropertiesFormBase.cpp +++ b/Project/PropertiesFormBase.cpp @@ -6,97 +6,102 @@ #include "PropertiesFormBase.h" - // Declare the bitmap loading function extern void wxCDAD0InitBitmapResources(); static bool bBitmapLoaded = false; - -GeneralPropertiesFormBase::GeneralPropertiesFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +GeneralPropertiesFormBase::GeneralPropertiesFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxCDAD0InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizer_lvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer_lvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - - boxSizer_lvl1_1->Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + boxSizer_lvl1_1->Add(m_notebook, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - + wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL); - + boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextLanguage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Language"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl3_1->Add(m_staticTextLanguage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextLanguage = new wxStaticText(m_panelGeneral, wxID_ANY, _("Language"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl3_1->Add(m_staticTextLanguage, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceLanguageArr; m_choiceLanguageArr.Add(wxT("English")); m_choiceLanguageArr.Add(wxT("Portuguese")); - m_choiceLanguage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceLanguageArr, 0); + m_choiceLanguage = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceLanguageArr, 0); m_choiceLanguage->SetSelection(0); - - boxSizerLvl3_1->Add(m_choiceLanguage, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl3_1->Add(m_choiceLanguage, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxVERTICAL); - + boxSizerLvl2_1->Add(boxSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTheme = new wxStaticText(m_panelGeneral, wxID_ANY, _("Theme"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl3_2->Add(m_staticTextTheme, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextTheme = new wxStaticText(m_panelGeneral, wxID_ANY, _("Theme"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl3_2->Add(m_staticTextTheme, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceThemeArr; m_choiceThemeArr.Add(wxT("Light")); m_choiceThemeArr.Add(wxT("Dark")); - m_choiceTheme = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceThemeArr, 0); + m_choiceTheme = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceThemeArr, 0); m_choiceTheme->SetSelection(0); - - boxSizerLvl3_2->Add(m_choiceTheme, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl3_2->Add(m_choiceTheme, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizer_bottonButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizer_lvl1_1->Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizer_lvl1_1->Add(boxSizer_bottonButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizer_bottonButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizer_bottonButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizer_bottonButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizer_bottonButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizer_bottonButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("GeneralPropertiesFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -110,574 +115,675 @@ GeneralPropertiesFormBase::GeneralPropertiesFormBase(wxWindow* parent, wxWindowI } #endif // Connect events - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, this); - + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), + NULL, this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, this); } GeneralPropertiesFormBase::~GeneralPropertiesFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, this); } -SimulationsSettingsFormBase::SimulationsSettingsFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +SimulationsSettingsFormBase::SimulationsSettingsFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxCDAD0InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizer_lvl1_1 = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizer_lvl1_1); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - - boxSizer_lvl1_1->Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_panelGeneral = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + boxSizer_lvl1_1->Add(m_notebook, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_panelGeneral = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelGeneral, _("General"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelGeneral->SetSizer(boxSizerLvl2_1); - + wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL); - + boxSizerLvl2_1->Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextBasePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Base power"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - - boxSizerLvl3_1->Add(m_staticTextBasePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextBasePower = new wxStaticText(m_panelGeneral, wxID_ANY, _("Base power"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); + + boxSizerLvl3_1->Add(m_staticTextBasePower, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlbasePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("100,0"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlbasePower = new wxTextCtrl(m_panelGeneral, wxID_ANY, wxT("100,0"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlbasePower->SetHint(wxT("")); - #endif - - boxSizerLvl4_1->Add(m_textCtrlbasePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_1->Add(m_textCtrlbasePower, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choiceBasePowerArr; m_choiceBasePowerArr.Add(wxT("VA")); m_choiceBasePowerArr.Add(wxT("kVA")); m_choiceBasePowerArr.Add(wxT("MVA")); - m_choiceBasePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceBasePowerArr, 0); + m_choiceBasePower = new wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), m_choiceBasePowerArr, 0); m_choiceBasePower->SetSelection(2); - - boxSizerLvl4_1->Add(m_choiceBasePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerLvl3_2 = new wxStaticBoxSizer( new wxStaticBox(m_panelGeneral, wxID_ANY, _("Continuous calculation")), wxVERTICAL); - - boxSizerLvl2_1->Add(staticBoxSizerLvl3_2, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_checkBoxFaultAfterPF = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Calculate fault after power flow"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + boxSizerLvl4_1->Add(m_choiceBasePower, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + + wxStaticBoxSizer* staticBoxSizerLvl3_2 = + new wxStaticBoxSizer(new wxStaticBox(m_panelGeneral, wxID_ANY, _("Continuous calculation")), wxVERTICAL); + + boxSizerLvl2_1->Add(staticBoxSizerLvl3_2, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_checkBoxFaultAfterPF = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Calculate fault after power flow"), + wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxFaultAfterPF->SetValue(true); - + staticBoxSizerLvl3_2->Add(m_checkBoxFaultAfterPF, 0, wxALL, WXC_FROM_DIP(5)); - - m_checkBoxSCPowerAfterPF = new wxCheckBox(m_panelGeneral, wxID_ANY, _("Calculate short-circuit power after power flow"), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0); + + m_checkBoxSCPowerAfterPF = + new wxCheckBox(m_panelGeneral, wxID_ANY, _("Calculate short-circuit power after power flow"), wxDefaultPosition, + wxDLG_UNIT(m_panelGeneral, wxSize(-1, -1)), 0); m_checkBoxSCPowerAfterPF->SetValue(true); - + staticBoxSizerLvl3_2->Add(m_checkBoxSCPowerAfterPF, 0, wxALL, WXC_FROM_DIP(5)); - - m_panelPF = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelPF = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelPF, _("Power flow"), false); - + wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL); m_panelPF->SetSizer(boxSizerLvl2_2); - + wxBoxSizer* boxSizerLvl3_3 = new wxBoxSizer(wxVERTICAL); - + boxSizerLvl2_2->Add(boxSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPFMethod = new wxStaticText(m_panelPF, wxID_ANY, _("Solution method"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - - boxSizerLvl3_3->Add(m_staticTextPFMethod, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextPFMethod = new wxStaticText(m_panelPF, wxID_ANY, _("Solution method"), wxDefaultPosition, + wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); + + boxSizerLvl3_3->Add(m_staticTextPFMethod, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxArrayString m_choicePFMethodArr; m_choicePFMethodArr.Add(wxT("Gauss-Seidel")); m_choicePFMethodArr.Add(wxT("Newton-Raphson")); - m_choicePFMethod = new wxChoice(m_panelPF, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), m_choicePFMethodArr, 0); + m_choicePFMethod = new wxChoice(m_panelPF, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), + m_choicePFMethodArr, 0); m_choicePFMethod->SetSelection(0); - - boxSizerLvl3_3->Add(m_choicePFMethod, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl3_3->Add(m_choicePFMethod, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxGridSizer* gridSizerLvl_3_4 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_2->Add(gridSizerLvl_3_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_3_4->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextAccFactor = new wxStaticText(m_panelPF, wxID_ANY, _("Acceleration factor"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextAccFactor, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlAccFactor = new wxTextCtrl(m_panelPF, wxID_ANY, wxT("1,0"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextAccFactor = new wxStaticText(m_panelPF, wxID_ANY, _("Acceleration factor"), wxDefaultPosition, + wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextAccFactor, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlAccFactor = + new wxTextCtrl(m_panelPF, wxID_ANY, wxT("1,0"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlAccFactor->SetHint(wxT("")); - #endif - - boxSizerLvl4_2->Add(m_textCtrlAccFactor, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_2->Add(m_textCtrlAccFactor, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_3_4->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPFTolerance = new wxStaticText(m_panelPF, wxID_ANY, _("Tolerance"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - - boxSizerLvl4_3->Add(m_staticTextPFTolerance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlPFTolerance = new wxTextCtrl(m_panelPF, wxID_ANY, wxT("1e-7"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextPFTolerance = new wxStaticText(m_panelPF, wxID_ANY, _("Tolerance"), wxDefaultPosition, + wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); + + boxSizerLvl4_3->Add(m_staticTextPFTolerance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlPFTolerance = + new wxTextCtrl(m_panelPF, wxID_ANY, wxT("1e-7"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPFTolerance->SetHint(wxT("")); - #endif - - boxSizerLvl4_3->Add(m_textCtrlPFTolerance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_3->Add(m_textCtrlPFTolerance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_3_4->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPFMaxIterations = new wxStaticText(m_panelPF, wxID_ANY, _("Max. iterations"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - - boxSizerLvl4_4->Add(m_staticTextPFMaxIterations, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlPFMaxIterations = new wxTextCtrl(m_panelPF, wxID_ANY, wxT("5000"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextPFMaxIterations = new wxStaticText(m_panelPF, wxID_ANY, _("Max. iterations"), wxDefaultPosition, + wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); + + boxSizerLvl4_4->Add(m_staticTextPFMaxIterations, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlPFMaxIterations = + new wxTextCtrl(m_panelPF, wxID_ANY, wxT("5000"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPFMaxIterations->SetHint(wxT("")); - #endif - - boxSizerLvl4_4->Add(m_textCtrlPFMaxIterations, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_4->Add(m_textCtrlPFMaxIterations, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_20 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_3_4->Add(boxSizerLvl4_20, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPFSlackBusAngle = new wxStaticText(m_panelPF, wxID_ANY, _("Slack bus angle"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - - boxSizerLvl4_20->Add(m_staticTextPFSlackBusAngle, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextPFSlackBusAngle = new wxStaticText(m_panelPF, wxID_ANY, _("Slack bus angle"), wxDefaultPosition, + wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); + + boxSizerLvl4_20->Add(m_staticTextPFSlackBusAngle, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_17 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_20->Add(boxSizerLvl5_17, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlPFSlackBusAngle = new wxTextCtrl(m_panelPF, wxID_ANY, wxT("0,0"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlPFSlackBusAngle = + new wxTextCtrl(m_panelPF, wxID_ANY, wxT("0,0"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPFSlackBusAngle->SetHint(wxT("")); - #endif - - boxSizerLvl5_17->Add(m_textCtrlPFSlackBusAngle, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - m_textCtrlPFSlackBusAngle->SetMinSize(wxSize(20,-1)); - - m_staticTextDeg_1 = new wxStaticText(m_panelPF, wxID_ANY, _("degrees"), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0); - - boxSizerLvl5_17->Add(m_staticTextDeg_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_panelStability = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); +#endif + + boxSizerLvl5_17->Add(m_textCtrlPFSlackBusAngle, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + m_textCtrlPFSlackBusAngle->SetMinSize(wxSize(20, -1)); + + m_staticTextDeg_1 = new wxStaticText(m_panelPF, wxID_ANY, _("degrees"), wxDefaultPosition, + wxDLG_UNIT(m_panelPF, wxSize(-1, -1)), 0); + + boxSizerLvl5_17->Add(m_staticTextDeg_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_panelStability = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelStability, _("Stability"), false); - + wxBoxSizer* boxSizerLvl2_3 = new wxBoxSizer(wxVERTICAL); m_panelStability->SetSizer(boxSizerLvl2_3); - + wxGridSizer* gridSizerLvl_2_3 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_3->Add(gridSizerLvl_2_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - + wxBoxSizer* boxSizerLvl3_6 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_2_3->Add(boxSizerLvl3_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTimeStep = new wxStaticText(m_panelStability, wxID_ANY, _("Time step"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl3_6->Add(m_staticTextTimeStep, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextTimeStep = new wxStaticText(m_panelStability, wxID_ANY, _("Time step"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl3_6->Add(m_staticTextTimeStep, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl3_6->Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlTimeStep = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0,01"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlTimeStep = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0,01"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlTimeStep->SetHint(wxT("")); - #endif - - boxSizerLvl4_6->Add(m_textCtrlTimeStep, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextSec_1 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl4_6->Add(m_staticTextSec_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_6->Add(m_textCtrlTimeStep, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextSec_1 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl4_6->Add(m_staticTextSec_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_7 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_2_3->Add(boxSizerLvl3_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTSimTime = new wxStaticText(m_panelStability, wxID_ANY, _("Simulation time"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl3_7->Add(m_staticTextTSimTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextTSimTime = new wxStaticText(m_panelStability, wxID_ANY, _("Simulation time"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl3_7->Add(m_staticTextTSimTime, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_7 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl3_7->Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlSimTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("10"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlSimTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("10"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlSimTime->SetHint(wxT("")); - #endif - - boxSizerLvl4_7->Add(m_textCtrlSimTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextSec_2 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl4_7->Add(m_staticTextSec_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_7->Add(m_textCtrlSimTime, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextSec_2 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl4_7->Add(m_staticTextSec_2, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_5 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_2_3->Add(boxSizerLvl3_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextFreq = new wxStaticText(m_panelStability, wxID_ANY, _("System frequency"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl3_5->Add(m_staticTextFreq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextFreq = new wxStaticText(m_panelStability, wxID_ANY, _("System frequency"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl3_5->Add(m_staticTextFreq, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl3_5->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlFreq = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("60,0"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlFreq = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("60,0"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlFreq->SetHint(wxT("")); - #endif - - boxSizerLvl4_5->Add(m_textCtrlFreq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextFreqUnit = new wxStaticText(m_panelStability, wxID_ANY, _("Hz"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl4_5->Add(m_staticTextFreqUnit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl4_5->Add(m_textCtrlFreq, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextFreqUnit = new wxStaticText(m_panelStability, wxID_ANY, _("Hz"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl4_5->Add(m_staticTextFreqUnit, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_8 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_2_3->Add(boxSizerLvl3_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTStabTolerance = new wxStaticText(m_panelStability, wxID_ANY, _("Tolerance"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl3_8->Add(m_staticTextTStabTolerance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlStabTolerance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("1e-8"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextTStabTolerance = new wxStaticText(m_panelStability, wxID_ANY, _("Tolerance"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl3_8->Add(m_staticTextTStabTolerance, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlStabTolerance = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("1e-8"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlStabTolerance->SetHint(wxT("")); - #endif - - boxSizerLvl3_8->Add(m_textCtrlStabTolerance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl3_8->Add(m_textCtrlStabTolerance, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_9 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_2_3->Add(boxSizerLvl3_9, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextTStabMaxIterations = new wxStaticText(m_panelStability, wxID_ANY, _("Max. Iterations"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl3_9->Add(m_staticTextTStabMaxIterations, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlStabMaxIterations = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextTStabMaxIterations = + new wxStaticText(m_panelStability, wxID_ANY, _("Max. Iterations"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl3_9->Add(m_staticTextTStabMaxIterations, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlStabMaxIterations = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("100"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlStabMaxIterations->SetHint(wxT("")); - #endif - - boxSizerLvl3_9->Add(m_textCtrlStabMaxIterations, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl3_9->Add(m_textCtrlStabMaxIterations, 0, + wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_10 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_2_3->Add(boxSizerLvl3_10, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextCtrlStepRation = new wxStaticText(m_panelStability, wxID_ANY, _("Controls step ratio"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl3_10->Add(m_staticTextCtrlStepRation, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_textCtrlCtrlStepRatio = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("10"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_staticTextCtrlStepRation = new wxStaticText(m_panelStability, wxID_ANY, _("Controls step ratio"), + wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl3_10->Add(m_staticTextCtrlStepRation, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_textCtrlCtrlStepRatio = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("10"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlCtrlStepRatio->SetHint(wxT("")); - #endif - - boxSizerLvl3_10->Add(m_textCtrlCtrlStepRatio, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl3_10->Add(m_textCtrlCtrlStepRatio, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl3_11 = new wxBoxSizer(wxVERTICAL); - + gridSizerLvl_2_3->Add(boxSizerLvl3_11, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextPrintTime = new wxStaticText(m_panelStability, wxID_ANY, _("Plot time"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl3_11->Add(m_staticTextPrintTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextPrintTime = new wxStaticText(m_panelStability, wxID_ANY, _("Plot time"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl3_11->Add(m_staticTextPrintTime, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_8 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl3_11->Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlPrintTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0,01"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlPrintTime = new wxTextCtrl(m_panelStability, wxID_ANY, wxT("0,01"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlPrintTime->SetHint(wxT("")); - #endif - - boxSizerLvl4_8->Add(m_textCtrlPrintTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextSec_4 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); - - boxSizerLvl4_8->Add(m_staticTextSec_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_checkBoxUseCOI = new wxCheckBox(m_panelStability, wxID_ANY, _("Use center of inertia as reference"), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0); +#endif + + boxSizerLvl4_8->Add(m_textCtrlPrintTime, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextSec_4 = new wxStaticText(m_panelStability, wxID_ANY, _("s"), wxDefaultPosition, + wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); + + boxSizerLvl4_8->Add(m_staticTextSec_4, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_checkBoxUseCOI = new wxCheckBox(m_panelStability, wxID_ANY, _("Use center of inertia as reference"), + wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1, -1)), 0); m_checkBoxUseCOI->SetValue(true); - + boxSizerLvl2_3->Add(m_checkBoxUseCOI, 0, wxALL, WXC_FROM_DIP(5)); - - m_panelLoadComp = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelLoadComp = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelLoadComp, _("ZIP Load"), false); - + wxBoxSizer* boxSizerLvl2_4 = new wxBoxSizer(wxVERTICAL); m_panelLoadComp->SetSizer(boxSizerLvl2_4); - - m_checkBoxUseCompLoads = new wxCheckBox(m_panelLoadComp, wxID_ANY, _("Use general composition to all system loads"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); + + m_checkBoxUseCompLoads = new wxCheckBox(m_panelLoadComp, wxID_ANY, _("Use general composition to all system loads"), + wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); m_checkBoxUseCompLoads->SetValue(false); - + boxSizerLvl2_4->Add(m_checkBoxUseCompLoads, 0, wxALL, WXC_FROM_DIP(5)); - + wxGridSizer* gridSizerLvl2_4 = new wxGridSizer(0, 2, 0, 0); - + boxSizerLvl2_4->Add(gridSizerLvl2_4, 1, wxEXPAND, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerLvl3_4 = new wxStaticBoxSizer( new wxStaticBox(m_panelLoadComp, wxID_ANY, _("Active power")), wxVERTICAL); - - gridSizerLvl2_4->Add(staticBoxSizerLvl3_4, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + wxStaticBoxSizer* staticBoxSizerLvl3_4 = + new wxStaticBoxSizer(new wxStaticBox(m_panelLoadComp, wxID_ANY, _("Active power")), wxVERTICAL); + + gridSizerLvl2_4->Add(staticBoxSizerLvl3_4, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_12 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_4->Add(boxSizerLvl4_12, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePowerImp = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant impedance"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl4_12->Add(m_staticTextActivePowerImp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePowerImp = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant impedance"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl4_12->Add(m_staticTextActivePowerImp, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_9 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_12->Add(boxSizerLvl5_9, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePowerImp = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePowerImp = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("100"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePowerImp->SetHint(wxT("")); - #endif - - boxSizerLvl5_9->Add(m_textCtrlActivePowerImp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_1 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl5_9->Add(m_staticTextPerc_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_9->Add(m_textCtrlActivePowerImp, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_1 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl5_9->Add(m_staticTextPerc_1, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_13 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_4->Add(boxSizerLvl4_13, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePowerCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl4_13->Add(m_staticTextActivePowerCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePowerCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl4_13->Add(m_staticTextActivePowerCur, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_10 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_13->Add(boxSizerLvl5_10, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePowerCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePowerCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePowerCur->SetHint(wxT("")); - #endif - - boxSizerLvl5_10->Add(m_textCtrlActivePowerCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_2 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl5_10->Add(m_staticTextPerc_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_10->Add(m_textCtrlActivePowerCur, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_2 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl5_10->Add(m_staticTextPerc_2, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_14 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_4->Add(boxSizerLvl4_14, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextActivePowerPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl4_14->Add(m_staticTextActivePowerPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextActivePowerPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl4_14->Add(m_staticTextActivePowerPow, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_11 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_14->Add(boxSizerLvl5_11, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlActivePowerPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlActivePowerPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlActivePowerPow->SetHint(wxT("")); - #endif - - boxSizerLvl5_11->Add(m_textCtrlActivePowerPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_3 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl5_11->Add(m_staticTextPerc_3, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - wxStaticBoxSizer* staticBoxSizerLvl3_5 = new wxStaticBoxSizer( new wxStaticBox(m_panelLoadComp, wxID_ANY, _("Reactive power")), wxVERTICAL); - - gridSizerLvl2_4->Add(staticBoxSizerLvl3_5, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_11->Add(m_textCtrlActivePowerPow, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_3 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl5_11->Add(m_staticTextPerc_3, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + wxStaticBoxSizer* staticBoxSizerLvl3_5 = + new wxStaticBoxSizer(new wxStaticBox(m_panelLoadComp, wxID_ANY, _("Reactive power")), wxVERTICAL); + + gridSizerLvl2_4->Add(staticBoxSizerLvl3_5, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_15 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_5->Add(boxSizerLvl4_15, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePowerImp = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant impedance"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl4_15->Add(m_staticTextReactivePowerImp, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePowerImp = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant impedance"), + wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl4_15->Add(m_staticTextReactivePowerImp, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_12 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_15->Add(boxSizerLvl5_12, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePowerImp = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("100"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePowerImp = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("100"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePowerImp->SetHint(wxT("")); - #endif - - boxSizerLvl5_12->Add(m_textCtrlReactivePowerImp, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_4 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl5_12->Add(m_staticTextPerc_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_12->Add(m_textCtrlReactivePowerImp, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_4 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl5_12->Add(m_staticTextPerc_4, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_16 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_5->Add(boxSizerLvl4_16, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePowerCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl4_16->Add(m_staticTextReactivePowerCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePowerCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl4_16->Add(m_staticTextReactivePowerCur, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_13 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_16->Add(boxSizerLvl5_13, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePowerCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePowerCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePowerCur->SetHint(wxT("")); - #endif - - boxSizerLvl5_13->Add(m_textCtrlReactivePowerCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_5 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl5_13->Add(m_staticTextPerc_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_13->Add(m_textCtrlReactivePowerCur, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_5 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl5_13->Add(m_staticTextPerc_5, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_17 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_5->Add(boxSizerLvl4_17, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextReactivePowerPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl4_17->Add(m_staticTextReactivePowerPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextReactivePowerPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl4_17->Add(m_staticTextReactivePowerPow, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_14 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_17->Add(boxSizerLvl5_14, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlReactivePowerPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlReactivePowerPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("0"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlReactivePowerPow->SetHint(wxT("")); - #endif - - boxSizerLvl5_14->Add(m_textCtrlReactivePowerPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_6 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl5_14->Add(m_staticTextPerc_6, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextUV = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Undervoltage limit which the loads will be modelled by\nconstant impedance:"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl2_4->Add(m_staticTextUV, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_14->Add(m_textCtrlReactivePowerPow, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_staticTextPerc_6 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl5_14->Add(m_staticTextPerc_6, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextUV = new wxStaticText(m_panelLoadComp, wxID_ANY, + _("Undervoltage limit which the loads will be modelled by\nconstant impedance:"), + wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl2_4->Add(m_staticTextUV, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl2_5 = new wxBoxSizer(wxHORIZONTAL); - - boxSizerLvl2_4->Add(boxSizerLvl2_5, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerLvl2_4->Add(boxSizerLvl2_5, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_18 = new wxBoxSizer(wxVERTICAL); - + boxSizerLvl2_5->Add(boxSizerLvl4_18, 1, 0, WXC_FROM_DIP(5)); - - m_staticTextUVCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl4_18->Add(m_staticTextUVCur, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextUVCur = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant current"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl4_18->Add(m_staticTextUVCur, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_15 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_18->Add(boxSizerLvl5_15, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlUVCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("70"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlUVCur = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("70"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlUVCur->SetHint(wxT("")); - #endif - - boxSizerLvl5_15->Add(m_textCtrlUVCur, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_7 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl5_15->Add(m_staticTextPerc_7, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_15->Add(m_textCtrlUVCur, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPerc_7 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl5_15->Add(m_staticTextPerc_7, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_19 = new wxBoxSizer(wxVERTICAL); - + boxSizerLvl2_5->Add(boxSizerLvl4_19, 1, 0, WXC_FROM_DIP(5)); - - m_staticTextUVPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl4_19->Add(m_staticTextUVPow, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - + + m_staticTextUVPow = new wxStaticText(m_panelLoadComp, wxID_ANY, _("Constant power"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl4_19->Add(m_staticTextUVPow, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl5_16 = new wxBoxSizer(wxHORIZONTAL); - + boxSizerLvl4_19->Add(boxSizerLvl5_16, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_textCtrlUVPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("70"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - #if wxVERSION_NUMBER >= 3000 + + m_textCtrlUVPow = new wxTextCtrl(m_panelLoadComp, wxID_ANY, wxT("70"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 m_textCtrlUVPow->SetHint(wxT("")); - #endif - - boxSizerLvl5_16->Add(m_textCtrlUVPow, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_staticTextPerc_8 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, wxDLG_UNIT(m_panelLoadComp, wxSize(-1,-1)), 0); - - boxSizerLvl5_16->Add(m_staticTextPerc_8, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - +#endif + + boxSizerLvl5_16->Add(m_textCtrlUVPow, 1, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_staticTextPerc_8 = new wxStaticText(m_panelLoadComp, wxID_ANY, _("%"), wxDefaultPosition, + wxDLG_UNIT(m_panelLoadComp, wxSize(-1, -1)), 0); + + boxSizerLvl5_16->Add(m_staticTextPerc_8, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizer_bottonButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizer_lvl1_1->Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizer_lvl1_1->Add(boxSizer_bottonButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizer_bottonButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizer_bottonButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizer_bottonButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizer_bottonButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizer_bottonButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("SimulationsSettingsFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -691,121 +797,144 @@ SimulationsSettingsFormBase::SimulationsSettingsFormBase(wxWindow* parent, wxWin } #endif // Connect events - m_choicePFMethod->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, this); - m_checkBoxUseCompLoads->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnCheckboxUseCompLoadClick), NULL, this); - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, this); - + m_choicePFMethod->Connect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, this); + m_checkBoxUseCompLoads->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(SimulationsSettingsFormBase::OnCheckboxUseCompLoadClick), + NULL, this); + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, this); } SimulationsSettingsFormBase::~SimulationsSettingsFormBase() { - m_choicePFMethod->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, this); - m_checkBoxUseCompLoads->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnCheckboxUseCompLoadClick), NULL, this); - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, this); - + m_choicePFMethod->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, + wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, + this); + m_checkBoxUseCompLoads->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, + wxCommandEventHandler(SimulationsSettingsFormBase::OnCheckboxUseCompLoadClick), + NULL, this); + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, this); } -AboutFormBase::AboutFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +AboutFormBase::AboutFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxCDAD0InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerMain = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerMain); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - - boxSizerMain->Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_panelLogo = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + boxSizerMain->Add(m_notebook, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_panelLogo = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelLogo, _("About"), false); - + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); m_panelLogo->SetSizer(boxSizerLvl1_1); - - m_staticBitmapLogo = new wxStaticBitmap(m_panelLogo, wxID_ANY, wxXmlResource::Get()->LoadBitmap(wxT("About2017")), wxDefaultPosition, wxDLG_UNIT(m_panelLogo, wxSize(-1,-1)), 0 ); - - boxSizerLvl1_1->Add(m_staticBitmapLogo, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5)); - - m_panelCredits = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_staticBitmapLogo = new wxStaticBitmap(m_panelLogo, wxID_ANY, wxXmlResource::Get()->LoadBitmap(wxT("About2017")), + wxDefaultPosition, wxDLG_UNIT(m_panelLogo, wxSize(-1, -1)), 0); + + boxSizerLvl1_1->Add(m_staticBitmapLogo, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5)); + + m_panelCredits = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelCredits, _("Credits"), false); - + wxBoxSizer* boxSizerLvl1_2 = new wxBoxSizer(wxVERTICAL); m_panelCredits->SetSizer(boxSizerLvl1_2); - - m_gridCredits = new wxGrid(m_panelCredits, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelCredits, wxSize(-1,-1)), wxWANTS_CHARS); + + m_gridCredits = new wxGrid(m_panelCredits, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelCredits, wxSize(-1, -1)), + wxWANTS_CHARS); m_gridCredits->CreateGrid(0, 0); m_gridCredits->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE); m_gridCredits->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); - #if wxVERSION_NUMBER >= 2904 +#if wxVERSION_NUMBER >= 2904 m_gridCredits->UseNativeColHeader(true); - #endif +#endif m_gridCredits->EnableEditing(false); - + boxSizerLvl1_2->Add(m_gridCredits, 1, wxEXPAND, WXC_FROM_DIP(5)); - - m_panelLicense = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + m_panelLicense = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelLicense, _("License"), false); - + wxBoxSizer* boxSizerLvl1_3 = new wxBoxSizer(wxVERTICAL); m_panelLicense->SetSizer(boxSizerLvl1_3); - - m_richTextCtrlLicense = new wxRichTextCtrl(m_panelLicense, wxID_ANY, wxT(""), wxDefaultPosition, wxDLG_UNIT(m_panelLicense, wxSize(-1,-1)), wxTE_MULTILINE|wxTE_PROCESS_TAB|wxTE_PROCESS_ENTER|wxWANTS_CHARS); - - boxSizerLvl1_3->Add(m_richTextCtrlLicense, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + m_richTextCtrlLicense = new wxRichTextCtrl(m_panelLicense, wxID_ANY, wxT(""), wxDefaultPosition, + wxDLG_UNIT(m_panelLicense, wxSize(-1, -1)), + wxTE_MULTILINE | wxTE_PROCESS_TAB | wxTE_PROCESS_ENTER | wxWANTS_CHARS); + + boxSizerLvl1_3->Add(m_richTextCtrlLicense, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxFlexGridSizer* flexGridSizer247 = new wxFlexGridSizer(2, 2, 0, 0); - flexGridSizer247->SetFlexibleDirection( wxBOTH ); - flexGridSizer247->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + flexGridSizer247->SetFlexibleDirection(wxBOTH); + flexGridSizer247->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED); flexGridSizer247->AddGrowableCol(1); - - boxSizerMain->Add(flexGridSizer247, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextVersionLabel = new wxStaticText(this, wxID_ANY, _("Version:"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - + + boxSizerMain->Add(flexGridSizer247, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_staticTextVersionLabel = + new wxStaticText(this, wxID_ANY, _("Version:"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + flexGridSizer247->Add(m_staticTextVersionLabel, 0, wxALL, WXC_FROM_DIP(5)); - - m_staticTextVersion = new wxStaticText(this, wxID_ANY, _("Alpha 2018w15a"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - + + m_staticTextVersion = + new wxStaticText(this, wxID_ANY, _("Alpha 2018w15a"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + flexGridSizer247->Add(m_staticTextVersion, 0, wxALL, WXC_FROM_DIP(5)); - - m_staticTextHome = new wxStaticText(this, wxID_ANY, _("Home page:"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - + + m_staticTextHome = + new wxStaticText(this, wxID_ANY, _("Home page:"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + flexGridSizer247->Add(m_staticTextHome, 0, wxALL, WXC_FROM_DIP(5)); - - m_hyperLinkPSP = new wxHyperlinkCtrl(this, wxID_ANY, _("https://thales1330.github.io/PSP/"), wxT("https://thales1330.github.io/PSP/"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxHL_DEFAULT_STYLE); + + m_hyperLinkPSP = new wxHyperlinkCtrl(this, wxID_ANY, _("https://thales1330.github.io/PSP/"), + wxT("https://thales1330.github.io/PSP/"), wxDefaultPosition, + wxDLG_UNIT(this, wxSize(-1, -1)), wxHL_DEFAULT_STYLE); m_hyperLinkPSP->SetNormalColour(wxColour(wxT("#0000FF"))); m_hyperLinkPSP->SetHoverColour(wxColour(wxT("#0000FF"))); m_hyperLinkPSP->SetVisitedColour(wxColour(wxT("#FF0000"))); - + flexGridSizer247->Add(m_hyperLinkPSP, 0, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizerMain->Add(m_buttonOK, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizerMain->Add(m_buttonOK, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("AboutFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -819,117 +948,198 @@ AboutFormBase::AboutFormBase(wxWindow* parent, wxWindowID id, const wxString& ti } #endif // Connect events - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, this); - + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, + this); } AboutFormBase::~AboutFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, + this); } -ImportFormBase::ImportFormBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) +ImportFormBase::ImportFormBase(wxWindow* parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style) : wxDialog(parent, id, title, pos, size, style) { - if ( !bBitmapLoaded ) { + if(!bBitmapLoaded) { // We need to initialise the default bitmap handler wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); wxCDAD0InitBitmapResources(); bBitmapLoaded = true; } - + wxBoxSizer* boxSizerMain = new wxBoxSizer(wxVERTICAL); this->SetSizer(boxSizerMain); - - m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + + m_notebook = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), wxBK_DEFAULT); m_notebook->SetName(wxT("m_notebook")); - - boxSizerMain->Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - - m_panelCEPEL = new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + boxSizerMain->Add(m_notebook, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + m_panelCEPEL = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); m_notebook->AddPage(m_panelCEPEL, _("CEPEL"), false); - + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxVERTICAL); m_panelCEPEL->SetSizer(boxSizerLvl2_1); - - wxStaticBoxSizer* staticBoxSizerLvl3_1 = new wxStaticBoxSizer( new wxStaticBox(m_panelCEPEL, wxID_ANY, _("ANAREDE")), wxVERTICAL); - - boxSizerLvl2_1->Add(staticBoxSizerLvl3_1, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + wxStaticBoxSizer* staticBoxSizerLvl3_1 = + new wxStaticBoxSizer(new wxStaticBox(m_panelCEPEL, wxID_ANY, _("ANAREDE")), wxVERTICAL); + + boxSizerLvl2_1->Add(staticBoxSizerLvl3_1, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_1->Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextBasePWFFile = new wxStaticText(m_panelCEPEL, wxID_ANY, _(".PWF file"), wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1,-1)), 0); - - boxSizerLvl4_1->Add(m_staticTextBasePWFFile, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_filePickerANAREDEPWF = new wxFilePickerCtrl(m_panelCEPEL, wxID_ANY, wxEmptyString, _("Select a ANAREDE PWF file"), wxT("PWF files (*.pwf)|*.pwf"), wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1,-1)), wxFLP_DEFAULT_STYLE|wxFLP_SMALL); - - boxSizerLvl4_1->Add(m_filePickerANAREDEPWF, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - m_filePickerANAREDEPWF->SetMinSize(wxSize(300,-1)); - + + m_staticTextBasePWFFile = new wxStaticText(m_panelCEPEL, wxID_ANY, _(".PWF file"), wxDefaultPosition, + wxDLG_UNIT(m_panelCEPEL, wxSize(-1, -1)), 0); + + boxSizerLvl4_1->Add(m_staticTextBasePWFFile, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_filePickerANAREDEPWF = new wxFilePickerCtrl( + m_panelCEPEL, wxID_ANY, wxEmptyString, _("Select a ANAREDE PWF file"), wxT("PWF files (*.pwf)|*.pwf"), + wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1, -1)), wxFLP_DEFAULT_STYLE | wxFLP_SMALL); + + boxSizerLvl4_1->Add(m_filePickerANAREDEPWF, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + m_filePickerANAREDEPWF->SetMinSize(wxSize(300, -1)); + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_1->Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextBaseLSTFile = new wxStaticText(m_panelCEPEL, wxID_ANY, _(".LST file"), wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1,-1)), 0); - - boxSizerLvl4_2->Add(m_staticTextBaseLSTFile, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_filePickerANAREDELST = new wxFilePickerCtrl(m_panelCEPEL, wxID_ANY, wxEmptyString, _("Select a ANAREDE LST file"), wxT("LST files (*.lst)|*.lst"), wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1,-1)), wxFLP_DEFAULT_STYLE|wxFLP_SMALL); - - boxSizerLvl4_2->Add(m_filePickerANAREDELST, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - m_filePickerANAREDELST->SetMinSize(wxSize(300,-1)); - - wxStaticBoxSizer* staticBoxSizerLvl3_2 = new wxStaticBoxSizer( new wxStaticBox(m_panelCEPEL, wxID_ANY, _("ANATEM")), wxVERTICAL); - - boxSizerLvl2_1->Add(staticBoxSizerLvl3_2, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + m_staticTextBaseLSTFile = new wxStaticText(m_panelCEPEL, wxID_ANY, _(".LST file"), wxDefaultPosition, + wxDLG_UNIT(m_panelCEPEL, wxSize(-1, -1)), 0); + + boxSizerLvl4_2->Add(m_staticTextBaseLSTFile, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_filePickerANAREDELST = new wxFilePickerCtrl( + m_panelCEPEL, wxID_ANY, wxEmptyString, _("Select a ANAREDE LST file"), wxT("LST files (*.lst)|*.lst"), + wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1, -1)), wxFLP_DEFAULT_STYLE | wxFLP_SMALL); + + boxSizerLvl4_2->Add(m_filePickerANAREDELST, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + m_filePickerANAREDELST->SetMinSize(wxSize(300, -1)); + + wxStaticBoxSizer* staticBoxSizerLvl3_2 = + new wxStaticBoxSizer(new wxStaticBox(m_panelCEPEL, wxID_ANY, _("ANATEM")), wxVERTICAL); + + boxSizerLvl2_1->Add(staticBoxSizerLvl3_2, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); - + staticBoxSizerLvl3_2->Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5)); - - m_staticTextBaseSTBFile = new wxStaticText(m_panelCEPEL, wxID_ANY, _(".STB file"), wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1,-1)), 0); + + m_staticTextBaseSTBFile = new wxStaticText(m_panelCEPEL, wxID_ANY, _(".STB file"), wxDefaultPosition, + wxDLG_UNIT(m_panelCEPEL, wxSize(-1, -1)), 0); m_staticTextBaseSTBFile->Enable(false); - - boxSizerLvl4_3->Add(m_staticTextBaseSTBFile, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); - - m_filePickerANATEMSTB = new wxFilePickerCtrl(m_panelCEPEL, wxID_ANY, wxEmptyString, _("Select a ANATEM STB file"), wxT("STB files (*.stb)|*.stb"), wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1,-1)), wxFLP_DEFAULT_STYLE|wxFLP_SMALL); + + boxSizerLvl4_3->Add(m_staticTextBaseSTBFile, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + m_filePickerANATEMSTB = new wxFilePickerCtrl( + m_panelCEPEL, wxID_ANY, wxEmptyString, _("Select a ANATEM STB file"), wxT("STB files (*.stb)|*.stb"), + wxDefaultPosition, wxDLG_UNIT(m_panelCEPEL, wxSize(-1, -1)), wxFLP_DEFAULT_STYLE | wxFLP_SMALL); m_filePickerANATEMSTB->Enable(false); - - boxSizerLvl4_3->Add(m_filePickerANATEMSTB, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5)); - m_filePickerANATEMSTB->SetMinSize(wxSize(300,-1)); - + + boxSizerLvl4_3->Add(m_filePickerANATEMSTB, 0, wxLEFT | wxRIGHT | wxBOTTOM, WXC_FROM_DIP(5)); + m_filePickerANATEMSTB->SetMinSize(wxSize(300, -1)); + + m_panelMatpower = + new wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1, -1)), wxTAB_TRAVERSAL); + m_notebook->AddPage(m_panelMatpower, _("Matpower"), false); + + wxBoxSizer* boxSizerLvl2_2 = new wxBoxSizer(wxVERTICAL); + m_panelMatpower->SetSizer(boxSizerLvl2_2); + + wxBoxSizer* boxSizerLvl3_3 = new wxBoxSizer(wxVERTICAL); + + boxSizerLvl2_2->Add(boxSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5)); + + m_staticTextBaseMFile = new wxStaticText(m_panelMatpower, wxID_ANY, _(".M file"), wxDefaultPosition, + wxDLG_UNIT(m_panelMatpower, wxSize(-1, -1)), 0); + + boxSizerLvl3_3->Add(m_staticTextBaseMFile, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_filePickerMatpowerM = new wxFilePickerCtrl( + m_panelMatpower, wxID_ANY, wxEmptyString, _("Select a Matpower M file"), wxT("M files (*.m)|*.m"), + wxDefaultPosition, wxDLG_UNIT(m_panelMatpower, wxSize(-1, -1)), wxFLP_DEFAULT_STYLE | wxFLP_SMALL); + + boxSizerLvl3_3->Add(m_filePickerMatpowerM, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND, WXC_FROM_DIP(5)); + m_filePickerMatpowerM->SetMinSize(wxSize(300, -1)); + + wxStaticBoxSizer* staticBoxLvl3_3 = + new wxStaticBoxSizer(new wxStaticBox(m_panelMatpower, wxID_ANY, _("Import options")), wxVERTICAL); + + boxSizerLvl2_2->Add(staticBoxLvl3_3, 1, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); + + staticBoxLvl3_3->Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5)); + + m_staticTextScale = new wxStaticText(m_panelMatpower, wxID_ANY, _("Scale"), wxDefaultPosition, + wxDLG_UNIT(m_panelMatpower, wxSize(-1, -1)), 0); + + boxSizerLvl4_4->Add(m_staticTextScale, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlScale = new wxTextCtrl(m_panelMatpower, wxID_ANY, wxT("200"), wxDefaultPosition, + wxDLG_UNIT(m_panelMatpower, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 + m_textCtrlScale->SetHint(wxT("")); +#endif + + boxSizerLvl4_4->Add(m_textCtrlScale, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL); + + staticBoxLvl3_3->Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5)); + + m_staticTextIteration = new wxStaticText(m_panelMatpower, wxID_ANY, _("Iterations"), wxDefaultPosition, + wxDLG_UNIT(m_panelMatpower, wxSize(-1, -1)), 0); + + boxSizerLvl4_5->Add(m_staticTextIteration, 0, wxLEFT | wxRIGHT | wxTOP | wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5)); + + m_textCtrlIterations = new wxTextCtrl(m_panelMatpower, wxID_ANY, wxT("100"), wxDefaultPosition, + wxDLG_UNIT(m_panelMatpower, wxSize(-1, -1)), 0); +#if wxVERSION_NUMBER >= 3000 + m_textCtrlIterations->SetHint(wxT("")); +#endif + + boxSizerLvl4_5->Add(m_textCtrlIterations, 0, wxLEFT | wxRIGHT | wxBOTTOM | wxEXPAND | wxALIGN_CENTER_VERTICAL, + WXC_FROM_DIP(5)); + wxBoxSizer* boxSizer_bottonButtons = new wxBoxSizer(wxHORIZONTAL); - - boxSizerMain->Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5)); - + + boxSizerMain->Add(boxSizer_bottonButtons, 0, wxALL | wxEXPAND, WXC_FROM_DIP(5)); + boxSizer_bottonButtons->Add(0, 0, 1, wxALL, WXC_FROM_DIP(5)); - - m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizer_bottonButtons->Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); - - boxSizer_bottonButtons->Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5)); - - - #if wxVERSION_NUMBER >= 2900 - if(!wxPersistenceManager::Get().Find(m_notebook)){ + + m_buttonOK = new wxButton(this, wxID_ANY, _("OK"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizer_bottonButtons->Add(m_buttonOK, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + + m_buttonCancel = new wxButton(this, wxID_ANY, _("Cancel"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1, -1)), 0); + + boxSizer_bottonButtons->Add(m_buttonCancel, 0, wxALL | wxALIGN_RIGHT, WXC_FROM_DIP(5)); + +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebook)) { wxPersistenceManager::Get().RegisterAndRestore(m_notebook); } else { wxPersistenceManager::Get().Restore(m_notebook); } - #endif - +#endif + SetName(wxT("ImportFormBase")); - SetSize(-1,-1); - if (GetSizer()) { - GetSizer()->Fit(this); - } + SetSize(wxDLG_UNIT(this, wxSize(-1, -1))); + if(GetSizer()) { GetSizer()->Fit(this); } if(GetParent()) { CentreOnParent(wxBOTH); } else { @@ -943,14 +1153,16 @@ ImportFormBase::ImportFormBase(wxWindow* parent, wxWindowID id, const wxString& } #endif // Connect events - m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImportFormBase::OnButtonOKClick), NULL, this); - m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImportFormBase::OnButtonCancelClick), NULL, this); - + m_buttonOK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImportFormBase::OnButtonOKClick), NULL, + this); + m_buttonCancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImportFormBase::OnButtonCancelClick), + NULL, this); } ImportFormBase::~ImportFormBase() { - m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImportFormBase::OnButtonOKClick), NULL, this); - m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImportFormBase::OnButtonCancelClick), NULL, this); - + m_buttonOK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImportFormBase::OnButtonOKClick), NULL, + this); + m_buttonCancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ImportFormBase::OnButtonCancelClick), + NULL, this); } diff --git a/Project/PropertiesFormBase.h b/Project/PropertiesFormBase.h index f498e1e..f0a579b 100644 --- a/Project/PropertiesFormBase.h +++ b/Project/PropertiesFormBase.h @@ -276,6 +276,13 @@ protected: wxFilePickerCtrl* m_filePickerANAREDELST; wxStaticText* m_staticTextBaseSTBFile; wxFilePickerCtrl* m_filePickerANATEMSTB; + wxPanel* m_panelMatpower; + wxStaticText* m_staticTextBaseMFile; + wxFilePickerCtrl* m_filePickerMatpowerM; + wxStaticText* m_staticTextScale; + wxTextCtrl* m_textCtrlScale; + wxStaticText* m_staticTextIteration; + wxTextCtrl* m_textCtrlIterations; wxButton* m_buttonOK; wxButton* m_buttonCancel; @@ -291,6 +298,13 @@ public: wxStaticText* GetStaticTextBaseSTBFile() { return m_staticTextBaseSTBFile; } wxFilePickerCtrl* GetFilePickerANATEMSTB() { return m_filePickerANATEMSTB; } wxPanel* GetPanelCEPEL() { return m_panelCEPEL; } + wxStaticText* GetStaticTextBaseMFile() { return m_staticTextBaseMFile; } + wxFilePickerCtrl* GetFilePickerMatpowerM() { return m_filePickerMatpowerM; } + wxStaticText* GetStaticTextScale() { return m_staticTextScale; } + wxTextCtrl* GetTextCtrlScale() { return m_textCtrlScale; } + wxStaticText* GetStaticTextIteration() { return m_staticTextIteration; } + wxTextCtrl* GetTextCtrlIterations() { return m_textCtrlIterations; } + wxPanel* GetPanelMatpower() { return m_panelMatpower; } wxNotebook* GetNotebook() { return m_notebook; } wxButton* GetButtonOK() { return m_buttonOK; } wxButton* GetButtonCancel() { return m_buttonCancel; } diff --git a/Project/PropertiesFormBase.h-6b514c3f b/Project/PropertiesFormBase.h-6b514c3f new file mode 100644 index 0000000..aa7a1f4 --- /dev/null +++ b/Project/PropertiesFormBase.h-6b514c3f @@ -0,0 +1,331 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: PropertiesForm.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef _PSP_PROJECT_PROPERTIESFORM_BASE_CLASSES_H +#define _PSP_PROJECT_PROPERTIESFORM_BASE_CLASSES_H + +#include <wx/arrstr.h> +#include <wx/artprov.h> +#include <wx/button.h> +#include <wx/checkbox.h> +#include <wx/choice.h> +#include <wx/dialog.h> +#include <wx/filepicker.h> +#include <wx/grid.h> +#include <wx/hyperlink.h> +#include <wx/iconbndl.h> +#include <wx/imaglist.h> +#include <wx/notebook.h> +#include <wx/panel.h> +#include <wx/richtext/richtextctrl.h> +#include <wx/settings.h> +#include <wx/sizer.h> +#include <wx/statbmp.h> +#include <wx/statbox.h> +#include <wx/stattext.h> +#include <wx/textctrl.h> +#include <wx/xrc/xh_bmp.h> +#include <wx/xrc/xmlres.h> +#if wxVERSION_NUMBER >= 2900 +#include <wx/persist.h> +#include <wx/persist/bookctrl.h> +#include <wx/persist/toplevel.h> +#include <wx/persist/treebook.h> +#endif + +#ifdef WXC_FROM_DIP +#undef WXC_FROM_DIP +#endif +#if wxVERSION_NUMBER >= 3100 +#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL) +#else +#define WXC_FROM_DIP(x) x +#endif + +class GeneralPropertiesFormBase : public wxDialog +{ + protected: + wxNotebook* m_notebook; + wxPanel* m_panelGeneral; + wxStaticText* m_staticTextLanguage; + wxChoice* m_choiceLanguage; + wxStaticText* m_staticTextTheme; + wxChoice* m_choiceTheme; + wxButton* m_buttonOK; + wxButton* m_buttonCancel; + + protected: + virtual void OnButtonOKClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonCancelClick(wxCommandEvent& event) { event.Skip(); } + + public: + wxStaticText* GetStaticTextLanguage() { return m_staticTextLanguage; } + wxChoice* GetChoiceLanguage() { return m_choiceLanguage; } + wxStaticText* GetStaticTextTheme() { return m_staticTextTheme; } + wxChoice* GetChoiceTheme() { return m_choiceTheme; } + wxPanel* GetPanelGeneral() { return m_panelGeneral; } + wxNotebook* GetNotebook() { return m_notebook; } + wxButton* GetButtonOK() { return m_buttonOK; } + wxButton* GetButtonCancel() { return m_buttonCancel; } + GeneralPropertiesFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("General settings"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); + virtual ~GeneralPropertiesFormBase(); +}; + +class SimulationsSettingsFormBase : public wxDialog +{ + protected: + wxNotebook* m_notebook; + wxPanel* m_panelGeneral; + wxStaticText* m_staticTextBasePower; + wxTextCtrl* m_textCtrlbasePower; + wxChoice* m_choiceBasePower; + wxCheckBox* m_checkBoxFaultAfterPF; + wxCheckBox* m_checkBoxSCPowerAfterPF; + wxPanel* m_panelPF; + wxStaticText* m_staticTextPFMethod; + wxChoice* m_choicePFMethod; + wxStaticText* m_staticTextAccFactor; + wxTextCtrl* m_textCtrlAccFactor; + wxStaticText* m_staticTextPFTolerance; + wxTextCtrl* m_textCtrlPFTolerance; + wxStaticText* m_staticTextPFMaxIterations; + wxTextCtrl* m_textCtrlPFMaxIterations; + wxStaticText* m_staticTextPFSlackBusAngle; + wxTextCtrl* m_textCtrlPFSlackBusAngle; + wxStaticText* m_staticTextDeg_1; + wxPanel* m_panelStability; + wxStaticText* m_staticTextTimeStep; + wxTextCtrl* m_textCtrlTimeStep; + wxStaticText* m_staticTextSec_1; + wxStaticText* m_staticTextTSimTime; + wxTextCtrl* m_textCtrlSimTime; + wxStaticText* m_staticTextSec_2; + wxStaticText* m_staticTextFreq; + wxTextCtrl* m_textCtrlFreq; + wxStaticText* m_staticTextFreqUnit; + wxStaticText* m_staticTextTStabTolerance; + wxTextCtrl* m_textCtrlStabTolerance; + wxStaticText* m_staticTextTStabMaxIterations; + wxTextCtrl* m_textCtrlStabMaxIterations; + wxStaticText* m_staticTextCtrlStepRation; + wxTextCtrl* m_textCtrlCtrlStepRatio; + wxStaticText* m_staticTextPrintTime; + wxTextCtrl* m_textCtrlPrintTime; + wxStaticText* m_staticTextSec_4; + wxCheckBox* m_checkBoxUseCOI; + wxPanel* m_panelLoadComp; + wxCheckBox* m_checkBoxUseCompLoads; + wxStaticText* m_staticTextActivePowerImp; + wxTextCtrl* m_textCtrlActivePowerImp; + wxStaticText* m_staticTextPerc_1; + wxStaticText* m_staticTextActivePowerCur; + wxTextCtrl* m_textCtrlActivePowerCur; + wxStaticText* m_staticTextPerc_2; + wxStaticText* m_staticTextActivePowerPow; + wxTextCtrl* m_textCtrlActivePowerPow; + wxStaticText* m_staticTextPerc_3; + wxStaticText* m_staticTextReactivePowerImp; + wxTextCtrl* m_textCtrlReactivePowerImp; + wxStaticText* m_staticTextPerc_4; + wxStaticText* m_staticTextReactivePowerCur; + wxTextCtrl* m_textCtrlReactivePowerCur; + wxStaticText* m_staticTextPerc_5; + wxStaticText* m_staticTextReactivePowerPow; + wxTextCtrl* m_textCtrlReactivePowerPow; + wxStaticText* m_staticTextPerc_6; + wxStaticText* m_staticTextUV; + wxStaticText* m_staticTextUVCur; + wxTextCtrl* m_textCtrlUVCur; + wxStaticText* m_staticTextPerc_7; + wxStaticText* m_staticTextUVPow; + wxTextCtrl* m_textCtrlUVPow; + wxStaticText* m_staticTextPerc_8; + wxButton* m_buttonOK; + wxButton* m_buttonCancel; + + protected: + virtual void OnPFMethodChoiceSelected(wxCommandEvent& event) { event.Skip(); } + virtual void OnCheckboxUseCompLoadClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonOKClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonCancelClick(wxCommandEvent& event) { event.Skip(); } + + public: + wxStaticText* GetStaticTextBasePower() { return m_staticTextBasePower; } + wxTextCtrl* GetTextCtrlbasePower() { return m_textCtrlbasePower; } + wxChoice* GetChoiceBasePower() { return m_choiceBasePower; } + wxCheckBox* GetCheckBoxFaultAfterPF() { return m_checkBoxFaultAfterPF; } + wxCheckBox* GetCheckBoxSCPowerAfterPF() { return m_checkBoxSCPowerAfterPF; } + wxPanel* GetPanelGeneral() { return m_panelGeneral; } + wxStaticText* GetStaticTextPFMethod() { return m_staticTextPFMethod; } + wxChoice* GetChoicePFMethod() { return m_choicePFMethod; } + wxStaticText* GetStaticTextAccFactor() { return m_staticTextAccFactor; } + wxTextCtrl* GetTextCtrlAccFactor() { return m_textCtrlAccFactor; } + wxStaticText* GetStaticTextPFTolerance() { return m_staticTextPFTolerance; } + wxTextCtrl* GetTextCtrlPFTolerance() { return m_textCtrlPFTolerance; } + wxStaticText* GetStaticTextPFMaxIterations() { return m_staticTextPFMaxIterations; } + wxTextCtrl* GetTextCtrlPFMaxIterations() { return m_textCtrlPFMaxIterations; } + wxStaticText* GetStaticTextPFSlackBusAngle() { return m_staticTextPFSlackBusAngle; } + wxTextCtrl* GetTextCtrlPFSlackBusAngle() { return m_textCtrlPFSlackBusAngle; } + wxStaticText* GetStaticTextDeg_1() { return m_staticTextDeg_1; } + wxPanel* GetPanelPF() { return m_panelPF; } + wxStaticText* GetStaticTextTimeStep() { return m_staticTextTimeStep; } + wxTextCtrl* GetTextCtrlTimeStep() { return m_textCtrlTimeStep; } + wxStaticText* GetStaticTextSec_1() { return m_staticTextSec_1; } + wxStaticText* GetStaticTextTSimTime() { return m_staticTextTSimTime; } + wxTextCtrl* GetTextCtrlSimTime() { return m_textCtrlSimTime; } + wxStaticText* GetStaticTextSec_2() { return m_staticTextSec_2; } + wxStaticText* GetStaticTextFreq() { return m_staticTextFreq; } + wxTextCtrl* GetTextCtrlFreq() { return m_textCtrlFreq; } + wxStaticText* GetStaticTextFreqUnit() { return m_staticTextFreqUnit; } + wxStaticText* GetStaticTextTStabTolerance() { return m_staticTextTStabTolerance; } + wxTextCtrl* GetTextCtrlStabTolerance() { return m_textCtrlStabTolerance; } + wxStaticText* GetStaticTextTStabMaxIterations() { return m_staticTextTStabMaxIterations; } + wxTextCtrl* GetTextCtrlStabMaxIterations() { return m_textCtrlStabMaxIterations; } + wxStaticText* GetStaticTextCtrlStepRation() { return m_staticTextCtrlStepRation; } + wxTextCtrl* GetTextCtrlCtrlStepRatio() { return m_textCtrlCtrlStepRatio; } + wxStaticText* GetStaticTextPrintTime() { return m_staticTextPrintTime; } + wxTextCtrl* GetTextCtrlPrintTime() { return m_textCtrlPrintTime; } + wxStaticText* GetStaticTextSec_4() { return m_staticTextSec_4; } + wxCheckBox* GetCheckBoxUseCOI() { return m_checkBoxUseCOI; } + wxPanel* GetPanelStability() { return m_panelStability; } + wxCheckBox* GetCheckBoxUseCompLoads() { return m_checkBoxUseCompLoads; } + wxStaticText* GetStaticTextActivePowerImp() { return m_staticTextActivePowerImp; } + wxTextCtrl* GetTextCtrlActivePowerImp() { return m_textCtrlActivePowerImp; } + wxStaticText* GetStaticTextPerc_1() { return m_staticTextPerc_1; } + wxStaticText* GetStaticTextActivePowerCur() { return m_staticTextActivePowerCur; } + wxTextCtrl* GetTextCtrlActivePowerCur() { return m_textCtrlActivePowerCur; } + wxStaticText* GetStaticTextPerc_2() { return m_staticTextPerc_2; } + wxStaticText* GetStaticTextActivePowerPow() { return m_staticTextActivePowerPow; } + wxTextCtrl* GetTextCtrlActivePowerPow() { return m_textCtrlActivePowerPow; } + wxStaticText* GetStaticTextPerc_3() { return m_staticTextPerc_3; } + wxStaticText* GetStaticTextReactivePowerImp() { return m_staticTextReactivePowerImp; } + wxTextCtrl* GetTextCtrlReactivePowerImp() { return m_textCtrlReactivePowerImp; } + wxStaticText* GetStaticTextPerc_4() { return m_staticTextPerc_4; } + wxStaticText* GetStaticTextReactivePowerCur() { return m_staticTextReactivePowerCur; } + wxTextCtrl* GetTextCtrlReactivePowerCur() { return m_textCtrlReactivePowerCur; } + wxStaticText* GetStaticTextPerc_5() { return m_staticTextPerc_5; } + wxStaticText* GetStaticTextReactivePowerPow() { return m_staticTextReactivePowerPow; } + wxTextCtrl* GetTextCtrlReactivePowerPow() { return m_textCtrlReactivePowerPow; } + wxStaticText* GetStaticTextPerc_6() { return m_staticTextPerc_6; } + wxStaticText* GetStaticTextUV() { return m_staticTextUV; } + wxStaticText* GetStaticTextUVCur() { return m_staticTextUVCur; } + wxTextCtrl* GetTextCtrlUVCur() { return m_textCtrlUVCur; } + wxStaticText* GetStaticTextPerc_7() { return m_staticTextPerc_7; } + wxStaticText* GetStaticTextUVPow() { return m_staticTextUVPow; } + wxTextCtrl* GetTextCtrlUVPow() { return m_textCtrlUVPow; } + wxStaticText* GetStaticTextPerc_8() { return m_staticTextPerc_8; } + wxPanel* GetPanelLoadComp() { return m_panelLoadComp; } + wxNotebook* GetNotebook() { return m_notebook; } + wxButton* GetButtonOK() { return m_buttonOK; } + wxButton* GetButtonCancel() { return m_buttonCancel; } + SimulationsSettingsFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Simulation settings"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); + virtual ~SimulationsSettingsFormBase(); +}; + +class AboutFormBase : public wxDialog +{ + protected: + wxNotebook* m_notebook; + wxPanel* m_panelLogo; + wxStaticBitmap* m_staticBitmapLogo; + wxPanel* m_panelCredits; + wxGrid* m_gridCredits; + wxPanel* m_panelLicense; + wxRichTextCtrl* m_richTextCtrlLicense; + wxStaticText* m_staticTextVersionLabel; + wxStaticText* m_staticTextVersion; + wxStaticText* m_staticTextHome; + wxHyperlinkCtrl* m_hyperLinkPSP; + wxButton* m_buttonOK; + + protected: + virtual void OnOKButtonClick(wxCommandEvent& event) { event.Skip(); } + + public: + wxStaticBitmap* GetStaticBitmapLogo() { return m_staticBitmapLogo; } + wxPanel* GetPanelLogo() { return m_panelLogo; } + wxGrid* GetGridCredits() { return m_gridCredits; } + wxPanel* GetPanelCredits() { return m_panelCredits; } + wxRichTextCtrl* GetRichTextCtrlLicense() { return m_richTextCtrlLicense; } + wxPanel* GetPanelLicense() { return m_panelLicense; } + wxNotebook* GetNotebook() { return m_notebook; } + wxStaticText* GetStaticTextVersionLabel() { return m_staticTextVersionLabel; } + wxStaticText* GetStaticTextVersion() { return m_staticTextVersion; } + wxStaticText* GetStaticTextHome() { return m_staticTextHome; } + wxHyperlinkCtrl* GetHyperLinkPSP() { return m_hyperLinkPSP; } + wxButton* GetButtonOK() { return m_buttonOK; } + AboutFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("About PSP-UFU"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); + virtual ~AboutFormBase(); +}; + +class ImportFormBase : public wxDialog +{ + protected: + wxNotebook* m_notebook; + wxPanel* m_panelCEPEL; + wxStaticText* m_staticTextBasePWFFile; + wxFilePickerCtrl* m_filePickerANAREDEPWF; + wxStaticText* m_staticTextBaseLSTFile; + wxFilePickerCtrl* m_filePickerANAREDELST; + wxStaticText* m_staticTextBaseSTBFile; + wxFilePickerCtrl* m_filePickerANATEMSTB; + wxPanel* m_panelMatpower; + wxStaticText* m_staticTextBaseMFile; + wxFilePickerCtrl* m_filePickerMatpowerM; + wxStaticText* m_staticTextScale; + wxTextCtrl* m_textCtrlScale; + wxStaticText* m_staticTextIteration; + wxTextCtrl* m_textCtrlIterations; + wxButton* m_buttonOK; + wxButton* m_buttonCancel; + + protected: + virtual void OnButtonOKClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnButtonCancelClick(wxCommandEvent& event) { event.Skip(); } + + public: + wxStaticText* GetStaticTextBasePWFFile() { return m_staticTextBasePWFFile; } + wxFilePickerCtrl* GetFilePickerANAREDEPWF() { return m_filePickerANAREDEPWF; } + wxStaticText* GetStaticTextBaseLSTFile() { return m_staticTextBaseLSTFile; } + wxFilePickerCtrl* GetFilePickerANAREDELST() { return m_filePickerANAREDELST; } + wxStaticText* GetStaticTextBaseSTBFile() { return m_staticTextBaseSTBFile; } + wxFilePickerCtrl* GetFilePickerANATEMSTB() { return m_filePickerANATEMSTB; } + wxPanel* GetPanelCEPEL() { return m_panelCEPEL; } + wxStaticText* GetStaticTextBaseMFile() { return m_staticTextBaseMFile; } + wxFilePickerCtrl* GetFilePickerMatpowerM() { return m_filePickerMatpowerM; } + wxStaticText* GetStaticTextScale() { return m_staticTextScale; } + wxTextCtrl* GetTextCtrlScale() { return m_textCtrlScale; } + wxStaticText* GetStaticTextIteration() { return m_staticTextIteration; } + wxTextCtrl* GetTextCtrlIterations() { return m_textCtrlIterations; } + wxPanel* GetPanelMatpower() { return m_panelMatpower; } + wxNotebook* GetNotebook() { return m_notebook; } + wxButton* GetButtonOK() { return m_buttonOK; } + wxButton* GetButtonCancel() { return m_buttonCancel; } + ImportFormBase(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxString& title = _("Import files"), + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(-1, -1), + long style = wxDEFAULT_DIALOG_STYLE); + virtual ~ImportFormBase(); +}; + +#endif diff --git a/Project/PropertiesFormBitmaps.cpp b/Project/PropertiesFormBitmaps.cpp index 9a27a1d..6bc206b 100644 --- a/Project/PropertiesFormBitmaps.cpp +++ b/Project/PropertiesFormBitmaps.cpp @@ -2654,6 +2654,6 @@ void wxCDAD0InitBitmapResources() } XRC_ADD_FILE(wxT("XRC_resource/PropertiesFormBitmaps.cpp$data_images_About2017.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); - XRC_ADD_FILE(wxT("XRC_resource/PropertiesFormBitmaps.cpp$C__Users_Thales_Documents_GitHub_PSP_Project_PropertiesFormBitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml")); - wxXmlResource::Get()->Load(wxT("memory:XRC_resource/PropertiesFormBitmaps.cpp$C__Users_Thales_Documents_GitHub_PSP_Project_PropertiesFormBitmaps.xrc")); + XRC_ADD_FILE(wxT("XRC_resource/PropertiesFormBitmaps.cpp$C__Users_thale_Documents_GitHub_PSP_Project_PropertiesFormBitmaps.xrc"), xml_res_file_1, xml_res_size_1, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/PropertiesFormBitmaps.cpp$C__Users_thale_Documents_GitHub_PSP_Project_PropertiesFormBitmaps.xrc")); } diff --git a/Project/SyncGenerator.h b/Project/SyncGenerator.h index 980b56b..70c4142 100644 --- a/Project/SyncGenerator.h +++ b/Project/SyncGenerator.h @@ -65,6 +65,7 @@ struct SyncGeneratorElectricalData { double armResistance = 0.0; double potierReactance = 0.0; double satFactor = 0.0; + double ocFrequency = 60.0; double syncXd = 0.0; double syncXq = 0.0; diff --git a/Project/Text.h b/Project/Text.h index 822d5ee..56fc821 100644 --- a/Project/Text.h +++ b/Project/Text.h @@ -36,6 +36,7 @@ class SyncMotor; class Load; class Inductor; class Capacitor; +class HarmCurrent; enum ElementType { TYPE_NONE = 0, @@ -47,7 +48,8 @@ enum ElementType { TYPE_LOAD, TYPE_SYNC_GENERATOR, TYPE_SYNC_MOTOR, - TYPE_TRANSFORMER + TYPE_TRANSFORMER, + TYPE_HARMCURRENT }; enum DataType { diff --git a/Project/Transformer.cpp b/Project/Transformer.cpp index 3c3edd8..024a851 100644 --- a/Project/Transformer.cpp +++ b/Project/Transformer.cpp @@ -718,3 +718,15 @@ bool Transformer::OpenElement(rapidxml::xml_node<>* elementNode, std::vector<Ele return true; } + +void Transformer::SetBestPositionAndRotation() +{ + wxPoint2DDouble p1 = m_pointList[0]; + wxPoint2DDouble p2 = m_pointList[m_pointList.size() - 1]; + wxPoint2DDouble mid = (p1 + p2) / 2.0; + StartMove(m_position); + Move(mid); + double bestAngle = wxRadToDeg(std::atan2(p2.m_y - p1.m_y, p2.m_x - p1.m_x)); + bool clockwise = bestAngle > 0 ? true : false; + while(std::abs(m_angle) < std::abs(bestAngle)) { Rotate(clockwise); } +} diff --git a/Project/Transformer.h b/Project/Transformer.h index 9a5d3d4..46dfe77 100644 --- a/Project/Transformer.h +++ b/Project/Transformer.h @@ -101,6 +101,7 @@ class Transformer : public Branch virtual TransformerElectricalData GetPUElectricalData(double systemBasePower); virtual void SetElectricaData(TransformerElectricalData electricalData) { m_electricalData = electricalData; } virtual void SetNominalVoltage(std::vector<double> nominalVoltage, std::vector<ElectricalUnit> nominalVoltageUnit); + virtual void SetBestPositionAndRotation(); virtual rapidxml::xml_node<>* SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode); virtual bool OpenElement(rapidxml::xml_node<>* elementNode, std::vector<Element*> parentList); diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp index e652f51..a17faae 100644 --- a/Project/Workspace.cpp +++ b/Project/Workspace.cpp @@ -28,12 +28,14 @@ #include "SyncGenerator.h" #include "SyncMotor.h" #include "Transformer.h" +#include "HarmCurrent.h" #include "Text.h" #include "Electromechanical.h" #include "Fault.h" #include "PowerFlow.h" +#include "PowerQuality.h" #include "ChartView.h" #include "ElementPlotData.h" @@ -154,6 +156,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event) Element* newElement = NULL; bool showNewElementForm = false; bool clickOnSwitch = false; + if(m_mode == MODE_INSERT_TEXT || m_mode == MODE_PASTE || m_mode == MODE_DRAG_PASTE) { m_mode = MODE_EDIT; } else if(m_mode == MODE_INSERT || m_mode == MODE_DRAG_INSERT || m_mode == MODE_DRAG_INSERT_TEXT) { @@ -799,6 +802,19 @@ void Workspace::OnKeyDown(wxKeyEvent& event) } } } break; + case 'H': { + if(!insertingElement) { + if(event.GetModifiers() == wxMOD_SHIFT) { // Insert an harmonic current source. + HarmCurrent* newHarmCurrent = + new HarmCurrent(wxString::Format(_("Harmonic Current %d"), GetElementNumber(ID_HARMCURRENT))); + IncrementElementNumber(ID_HARMCURRENT); + m_elementList.push_back(newHarmCurrent); + m_mode = MODE_INSERT; + m_statusBar->SetStatusText(_("Insert Harmonic Current Source: Click on a buses, ESC to cancel.")); + } + Redraw(); + } + } break; case 'V': { if(!insertingElement) { if(event.GetModifiers() == wxMOD_CONTROL) { Paste(); } @@ -1496,3 +1512,16 @@ bool Workspace::RunStaticStudies() return false; } + +bool Workspace::RunHarmonicDistortion() +{ + auto simProp = m_properties->GetSimulationPropertiesData(); + double basePower = simProp.basePower; + if(simProp.basePowerUnit == UNIT_MVA) + basePower *= 1e6; + else if(simProp.basePowerUnit == UNIT_kVA) + basePower *= 1e3; + if(!RunPowerFlow()) return false; + PowerQuality pq(GetElementList()); + return pq.CalculateDistortions(basePower); +} diff --git a/Project/Workspace.h b/Project/Workspace.h index c59314a..38c5356 100644 --- a/Project/Workspace.h +++ b/Project/Workspace.h @@ -43,6 +43,7 @@ class SyncMotor; class Load; class Inductor; class Capacitor; +class HarmCurrent; class ElementDataObject; class Text; @@ -50,6 +51,7 @@ class Text; class PowerFlow; class Fault; class Electromechanical; +class PowerQuality; class ElementPlotData; class ChartView; @@ -66,6 +68,7 @@ enum ElementID { ID_LOAD, ID_CAPACITOR, ID_INDUCTOR, + ID_HARMCURRENT, ID_TEXT, NUM_ELEMENTS @@ -145,6 +148,7 @@ class Workspace : public WorkspaceBase bool RunSCPower(); bool RunStaticStudies(); bool RunStability(); + bool RunHarmonicDistortion(); protected: virtual void OnMiddleDoubleClick(wxMouseEvent& event); diff --git a/Project/data/images/ribbon/freqResp32.png b/Project/data/images/ribbon/freqResp32.png Binary files differnew file mode 100644 index 0000000..76877a5 --- /dev/null +++ b/Project/data/images/ribbon/freqResp32.png diff --git a/Project/data/images/ribbon/harmDist32.png b/Project/data/images/ribbon/harmDist32.png Binary files differnew file mode 100644 index 0000000..4cd9cf8 --- /dev/null +++ b/Project/data/images/ribbon/harmDist32.png diff --git a/Project/icons.svg b/Project/icons.svg index 41fa813..bb0b68d 100644 --- a/Project/icons.svg +++ b/Project/icons.svg @@ -13,8 +13,8 @@ height="297mm" id="svg2" version="1.1" - inkscape:version="0.92.1 r15371" - sodipodi:docname="icones.svg"> + inkscape:version="0.92.3 (2405546, 2018-03-11)" + sodipodi:docname="icons.svg"> <defs id="defs4"> <filter @@ -1735,16 +1735,16 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="486.22101" - inkscape:cy="232.11191" + inkscape:zoom="2.8284271" + inkscape:cx="364.71431" + inkscape:cy="-195.53066" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" - inkscape:window-width="1366" - inkscape:window-height="705" - inkscape:window-x="1358" - inkscape:window-y="-8" + inkscape:window-width="1920" + inkscape:window-height="1001" + inkscape:window-x="-9" + inkscape:window-y="-9" inkscape:window-maximized="1" showguides="true" inkscape:guide-bbox="true" /> @@ -4149,5 +4149,130 @@ inkscape:export-filename="C:\Users\Thales\Dropbox\Imagens\PSSP\chart32.png" inkscape:export-xdpi="35" inkscape:export-ydpi="35" /> + <rect + style="fill:#0081cb;fill-opacity:1;stroke:none;stroke-width:1.06666672" + id="rect4916-7-9" + width="86.594116" + height="86.594116" + x="213.70671" + y="1325.0332" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\harmDist32.png" + inkscape:export-xdpi="35.470001" + inkscape:export-ydpi="35.470001" /> + <path + style="fill:#000000;fill-opacity:0.05882353;stroke:none;stroke-width:1.06666672" + d="m 300.29747,1411.4943 v 0.1334 h -86.59411 v -86.3275" + id="rect4916-1-8-1" + inkscape:connector-curvature="0" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\harmDist32.png" + inkscape:export-xdpi="35.470001" + inkscape:export-ydpi="35.470001" /> + <rect + style="fill:#ff8200;fill-opacity:1;stroke:none;stroke-width:1.06666672" + id="rect4767-2" + width="13.866669" + height="48.296875" + x="-275.01144" + y="1361.2612" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\harmDist32.png" + inkscape:export-xdpi="35.470001" + inkscape:export-ydpi="35.470001" + transform="scale(-1,1)" /> + <rect + style="fill:#ff8200;fill-opacity:1;stroke:none;stroke-width:1.06666672" + id="rect4767-6-6" + width="13.866669" + height="20.086981" + x="-253.08957" + y="1389.4711" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\harmDist32.png" + inkscape:export-xdpi="35.470001" + inkscape:export-ydpi="35.470001" + transform="scale(-1,1)" /> + <rect + style="fill:#ff8200;fill-opacity:1;stroke:none;stroke-width:1.06666672" + id="rect4767-6-1-3" + width="13.866669" + height="83.217773" + x="-231.16768" + y="1326.3406" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\harmDist32.png" + inkscape:export-xdpi="35.470001" + inkscape:export-ydpi="35.470001" + transform="scale(-1,1)" /> + <rect + style="fill:#0081cb;fill-opacity:1;stroke:none;stroke-width:1.06666672" + id="rect4916-7-2" + width="86.594116" + height="86.594116" + x="396.20462" + y="1322.2224" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\freqResp32.png" + inkscape:export-xdpi="35.48" + inkscape:export-ydpi="35.48" /> + <path + style="fill:none;stroke:#ff8200;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.07058824;stroke-miterlimit:4;stroke-dasharray:none" + d="m 404.81863,1400.7662 c 10.61145,-7.0743 13.43585,-49.6121 13.78859,-48.6136 0.78094,1.1563 2.81643,34.6666 10.07626,41.3657 7.25983,6.6991 8.11241,0.4018 13.08148,0.1768 4.96907,-0.2249 2.50101,5.1429 11.13694,-2.8284 8.63593,-7.9713 3.37597,-54.4406 5.83362,-52.6794 1.51742,1.8986 1.25519,45.5388 9.36917,53.5632 8.11398,8.0245 9.54594,1.4143 9.54594,1.4143" + id="path1417" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cczzzczc" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\freqResp32.png" + inkscape:export-xdpi="35" + inkscape:export-ydpi="35" /> + <path + style="fill:#000000;fill-opacity:0.05882353;stroke:none;stroke-width:1.06666672" + d="m 482.79537,1408.6835 v 0.1334 h -86.5941 v -86.3275" + id="rect4916-1-8-7" + inkscape:connector-curvature="0" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\freqResp32.png" + inkscape:export-xdpi="35" + inkscape:export-ydpi="35" /> + <g + id="g4938-8-67" + transform="translate(44.130517,315.13334)" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\freqResp32.png" + inkscape:export-xdpi="35.48" + inkscape:export-ydpi="35.48"> + <rect + y="1011.4568" + x="356.62167" + height="77.498955" + width="7.1921496" + id="rect4918-7-1" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.06666672" /> + <rect + transform="rotate(-90)" + y="356.62167" + x="-1089.3158" + height="77.498955" + width="7.1921496" + id="rect4918-6-7-1" + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.06666672" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.06666672" + x="273.34689" + y="1344.6519" + id="text5186-9" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\harmDist32.png" + inkscape:export-xdpi="35.470001" + inkscape:export-ydpi="35.470001"><tspan + sodipodi:role="line" + id="tspan5188-8" + x="273.34689" + y="1344.6519" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25.60000038px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.06666672">THD</tspan></text> + <rect + style="fill:#ff8200;fill-opacity:1;stroke:none;stroke-width:1.06666672" + id="rect4767-2-3" + width="13.866669" + height="6.421875" + x="-296.93332" + y="1403.1362" + inkscape:export-filename="C:\Users\thale\Documents\GitHub\PSP\Project\data\images\ribbon\harmDist32.png" + inkscape:export-xdpi="35.470001" + inkscape:export-ydpi="35.470001" + transform="scale(-1,1)" /> </g> </svg> |