diff options
author | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-04-26 19:51:45 -0300 |
---|---|---|
committer | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-04-26 19:51:45 -0300 |
commit | ee58faacaaaf83293ead87696847b018f9a1281d (patch) | |
tree | 8c341072b95430243f1ac5d73735e8b31a363f3c /Project | |
parent | c3b8370a456085dd835349a8c50e7a9e0a117c45 (diff) | |
download | PSP.git-ee58faacaaaf83293ead87696847b018f9a1281d.tar.gz PSP.git-ee58faacaaaf83293ead87696847b018f9a1281d.tar.xz PSP.git-ee58faacaaaf83293ead87696847b018f9a1281d.zip |
Element plot data class implemented
Diffstat (limited to 'Project')
-rw-r--r-- | Project/ChartView.cpp | 134 | ||||
-rw-r--r-- | Project/ChartView.h | 16 | ||||
-rw-r--r-- | Project/ChartView.wxcp | 84 | ||||
-rw-r--r-- | Project/ChartViewBase.cpp | 36 | ||||
-rw-r--r-- | Project/ChartViewBase.h | 16 | ||||
-rw-r--r-- | Project/ElementPlotData.cpp | 22 | ||||
-rw-r--r-- | Project/ElementPlotData.h | 82 | ||||
-rw-r--r-- | Project/Project.mk | 26 | ||||
-rw-r--r-- | Project/Project.project | 2 | ||||
-rw-r--r-- | Project/Project.txt | 2 |
10 files changed, 375 insertions, 45 deletions
diff --git a/Project/ChartView.cpp b/Project/ChartView.cpp index 25d1b96..166cdac 100644 --- a/Project/ChartView.cpp +++ b/Project/ChartView.cpp @@ -2,18 +2,24 @@ ChartView::ChartView(wxWindow* parent) : ChartViewBase(parent) { + m_menuItemShowGrid->Check(m_hideGrid ? false : true); + m_menuItemShowLabel->Check(m_showLeg); + m_menuItemShowCoordinates->Check(m_showCoords); + m_menuItemDarkTheme->Check(m_darkTheme); + + // Create color property. m_pgPropColor = m_pgMgr->Insert(m_pgPropLineProp, 1, new wxColourProperty(_("Color"))); m_pgPropColor->SetEditor(wxT("ChoiceAndButton")); m_pgPropColor->SetValue(static_cast<wxVariant>(*wxBLACK)); + // Set margins and axis limit to composed mode. m_pgPropMargins->SetValue(wxT("<composed>")); m_pgMgr->Collapse(m_pgPropMargins); m_pgPropAxisLimit->SetValue(wxT("<composed>")); m_pgMgr->Collapse(m_pgPropAxisLimit); SetMPWindow(); - wxSizer* sizer = GetSizer(); - sizer->Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5)); + GetSizer()->Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5)); Layout(); SetInitialSize(); } @@ -28,8 +34,8 @@ void ChartView::SetMPWindow() m_yaxis = new mpScaleY("", mpALIGN_LEFT, true); m_xaxis->SetDrawOutsideMargins(false); m_yaxis->SetDrawOutsideMargins(false); - m_xaxis->SetTicks(false); - m_yaxis->SetTicks(false); + m_xaxis->SetTicks(m_hideGrid); + m_yaxis->SetTicks(m_hideGrid); m_leg = new mpInfoLegend(wxRect(200, 20, 40, 40), wxWHITE_BRUSH); m_coords = new mpInfoCoords(wxRect(0, 0, 0, 0), wxWHITE_BRUSH); @@ -44,12 +50,126 @@ void ChartView::SetMPWindow() m_mpWindow->AddLayer(m_coords); m_mpWindow->AddLayer(m_chartTitle); - m_leg->SetVisible(true); - m_coords->SetVisible(false); + m_leg->SetVisible(m_showLeg); + m_coords->SetVisible(m_showCoords); m_mpWindow->EnableDoubleBuffer(true); m_mpWindow->LockAspect(false); + Fit(); +} + +void ChartView::OnPropertyGridChange(wxPropertyGridEvent& event) +{ + bool fit = false; + + if(event.GetPropertyName() == _("Margins")) { + m_mpWindow->SetMargins(m_pgPropMarginsUp->GetValue().GetLong(), m_pgPropMarginsRight->GetValue().GetLong(), + m_pgPropMarginsBot->GetValue().GetLong(), m_pgPropMarginsLeft->GetValue().GetLong()); + m_mpWindow->UpdateAll(); + } + if(event.GetPropertyName() == _("Axis limit")) { + m_mpWindow->Fit(m_pgPropXMin->GetValue().GetDouble(), m_pgPropXMax->GetValue().GetDouble(), + m_pgPropYMin->GetValue().GetDouble(), m_pgPropYMax->GetValue().GetDouble()); + m_mpWindow->UpdateAll(); + } + UpdatePlot(fit); +} + +void ChartView::OnMenuDarkThemeClick(wxCommandEvent& event) +{ + m_darkTheme = event.IsChecked(); + wxColour grey(96, 96, 96); + + if(m_darkTheme) { + m_mpWindow->SetColourTheme(*wxBLACK, *wxWHITE, grey); + m_leg->SetBrush(*wxBLACK_BRUSH); + m_coords->SetBrush(*wxBLACK_BRUSH); + } else { + m_mpWindow->SetColourTheme(*wxWHITE, *wxBLACK, grey); + m_leg->SetBrush(*wxWHITE_BRUSH); + m_coords->SetBrush(*wxWHITE_BRUSH); + } + + m_mpWindow->UpdateAll(); +} + +void ChartView::OnMenuSaveImageClick(wxCommandEvent& event) {} +void ChartView::OnMenuSendClipClick(wxCommandEvent& event) {} +void ChartView::OnMenuShowCoordinatesClick(wxCommandEvent& event) +{ + m_showCoords = event.IsChecked(); + m_coords->SetVisible(m_showCoords); + m_mpWindow->UpdateAll(); +} + +void ChartView::OnMenuShowGridClick(wxCommandEvent& event) +{ + m_hideGrid = event.IsChecked() ? false : true; + m_xaxis->SetTicks(m_hideGrid); + m_yaxis->SetTicks(m_hideGrid); + m_mpWindow->UpdateAll(); +} + +void ChartView::OnMenuShowLabelClick(wxCommandEvent& event) +{ + m_showLeg = event.IsChecked(); + m_leg->SetVisible(m_showLeg); + m_mpWindow->UpdateAll(); +} + +void ChartView::Fit() +{ m_mpWindow->Fit(); + double bBox[4]; + m_mpWindow->GetBoundingBox(bBox); + + m_pgPropXMin->SetValue(bBox[0]); + m_pgPropXMax->SetValue(bBox[1]); + m_pgPropYMin->SetValue(bBox[2]); + m_pgPropYMax->SetValue(bBox[3]); } -void ChartView::OnPropertyGridChange(wxPropertyGridEvent& event) {} +void ChartView::UpdatePlot(bool fit) +{ + wxRect legRect = m_leg->GetRectangle(); + wxRect coordsRect = m_coords->GetRectangle(); + m_mpWindow->DelAllLayers(true, false); + + // GoAllTrees(treeCtrl_ChartSelection->GetRootItem()); + + m_xaxis = new mpScaleX(m_pgPropXLabel->GetValueAsString(), mpALIGN_BOTTOM, true); + m_yaxis = new mpScaleY(m_pgPropYLabel->GetValueAsString(), mpALIGN_LEFT, true); + m_leg = new mpInfoLegend(legRect, wxWHITE_BRUSH); + m_coords = new mpInfoCoords(coordsRect, wxWHITE_BRUSH); + + m_xaxis->SetDrawOutsideMargins(false); + m_yaxis->SetDrawOutsideMargins(false); + m_xaxis->SetTicks(m_hideGrid); + m_yaxis->SetTicks(m_hideGrid); + + mpText* chartTitle = new mpText(m_pgPropChartTitle->GetValueAsString(), 50, 0); + wxFont chartTitleFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD); + chartTitle->SetFont(chartTitleFont); + + m_mpWindow->AddLayer(m_xaxis); + m_mpWindow->AddLayer(m_yaxis); + m_mpWindow->AddLayer(m_leg); + m_mpWindow->AddLayer(m_coords); + m_mpWindow->AddLayer(chartTitle); + + m_leg->SetVisible(m_showLeg); + m_coords->SetVisible(m_showCoords); + + if(fit) Fit(); + + wxColour grey(96, 96, 96); + if(m_darkTheme) { + m_mpWindow->SetColourTheme(*wxBLACK, *wxWHITE, grey); + m_leg->SetBrush(*wxBLACK_BRUSH); + m_coords->SetBrush(*wxBLACK_BRUSH); + } else { + m_mpWindow->SetColourTheme(*wxWHITE, *wxBLACK, grey); + m_leg->SetBrush(*wxWHITE_BRUSH); + m_coords->SetBrush(*wxWHITE_BRUSH); + } +} diff --git a/Project/ChartView.h b/Project/ChartView.h index 316aae9..c586fbb 100644 --- a/Project/ChartView.h +++ b/Project/ChartView.h @@ -10,8 +10,19 @@ class ChartView : public ChartViewBase public: ChartView(wxWindow* parent); virtual ~ChartView(); + + void Fit(); + void UpdatePlot(bool fit = true); protected: + virtual void OnMenuDarkThemeClick(wxCommandEvent& event); + virtual void OnMenuExitClick(wxCommandEvent& event) { Close(); } + virtual void OnMenuFitClick(wxCommandEvent& event) { Fit(); } + virtual void OnMenuSaveImageClick(wxCommandEvent& event); + virtual void OnMenuSendClipClick(wxCommandEvent& event); + virtual void OnMenuShowCoordinatesClick(wxCommandEvent& event); + virtual void OnMenuShowGridClick(wxCommandEvent& event); + virtual void OnMenuShowLabelClick(wxCommandEvent& event); virtual void OnPropertyGridChange(wxPropertyGridEvent& event); virtual void SetMPWindow(); mpWindow* m_mpWindow = NULL; @@ -21,6 +32,11 @@ class ChartView : public ChartViewBase mpInfoCoords* m_coords = NULL; mpInfoLegend* m_leg = NULL; + bool m_hideGrid = false; + bool m_showLeg = false; + bool m_showCoords = false; + bool m_darkTheme = false; + wxPGProperty* m_pgPropColor = NULL; }; #endif // CHARTVIEW_H diff --git a/Project/ChartView.wxcp b/Project/ChartView.wxcp index 9cee9d2..3fe03fd 100644 --- a/Project/ChartView.wxcp +++ b/Project/ChartView.wxcp @@ -255,7 +255,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuSaveImageClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -272,7 +279,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_menuItemSandToClipboard" + "m_value": "m_menuItemSendToClipboard" }, { "type": "string", "m_label": "Label:", @@ -299,7 +306,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuSendClipClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -387,7 +401,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuExitClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }] }, { @@ -450,7 +471,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuFitClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -538,7 +566,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuShowGridClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -582,7 +617,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuShowLabelClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -626,7 +668,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuShowCoordinatesClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -670,7 +719,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuDarkThemeClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }] }] @@ -1600,7 +1656,7 @@ "m_properties": [{ "type": "string", "m_label": "Name:", - "m_value": "m_pgPropYMarginsBot" + "m_value": "m_pgPropMarginsBot" }, { "type": "string", "m_label": "Label:", @@ -1665,7 +1721,7 @@ "m_properties": [{ "type": "string", "m_label": "Name:", - "m_value": "m_pgPropYMarginsLeft" + "m_value": "m_pgPropMarginsLeft" }, { "type": "string", "m_label": "Label:", @@ -1730,7 +1786,7 @@ "m_properties": [{ "type": "string", "m_label": "Name:", - "m_value": "m_pgPropYMarginsRight" + "m_value": "m_pgPropMarginsRight" }, { "type": "string", "m_label": "Label:", @@ -1951,7 +2007,7 @@ }, { "type": "string", "m_label": "String Value", - "m_value": "0" + "m_value": "1" }, { "type": "multi-string", "m_label": "Choices:", @@ -2081,7 +2137,7 @@ }, { "type": "string", "m_label": "String Value", - "m_value": "0" + "m_value": "1" }, { "type": "multi-string", "m_label": "Choices:", diff --git a/Project/ChartViewBase.cpp b/Project/ChartViewBase.cpp index fcb4307..22a650b 100644 --- a/Project/ChartViewBase.cpp +++ b/Project/ChartViewBase.cpp @@ -32,8 +32,8 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_menuItemSaveImage = new wxMenuItem(m_menuFile, wxID_ANY, _("Save chart as image"), wxT(""), wxITEM_NORMAL); m_menuFile->Append(m_menuItemSaveImage); - m_menuItemSandToClipboard = new wxMenuItem(m_menuFile, wxID_ANY, _("Send to clipboard"), wxT(""), wxITEM_NORMAL); - m_menuFile->Append(m_menuItemSandToClipboard); + m_menuItemSendToClipboard = new wxMenuItem(m_menuFile, wxID_ANY, _("Send to clipboard"), wxT(""), wxITEM_NORMAL); + m_menuFile->Append(m_menuItemSendToClipboard); m_menuFile->AppendSeparator(); @@ -132,14 +132,14 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_pgPropMarginsUp = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Up"), wxPG_LABEL, 20) ); m_pgPropMarginsUp->SetHelpString(wxT("")); - m_pgPropYMarginsBot = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Botton"), wxPG_LABEL, 40) ); - m_pgPropYMarginsBot->SetHelpString(wxT("")); + m_pgPropMarginsBot = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Botton"), wxPG_LABEL, 40) ); + m_pgPropMarginsBot->SetHelpString(wxT("")); - m_pgPropYMarginsLeft = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Left"), wxPG_LABEL, 60) ); - m_pgPropYMarginsLeft->SetHelpString(wxT("")); + m_pgPropMarginsLeft = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Left"), wxPG_LABEL, 60) ); + m_pgPropMarginsLeft->SetHelpString(wxT("")); - m_pgPropYMarginsRight = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Right"), wxPG_LABEL, 10) ); - m_pgPropYMarginsRight->SetHelpString(wxT("")); + m_pgPropMarginsRight = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Right"), wxPG_LABEL, 10) ); + m_pgPropMarginsRight->SetHelpString(wxT("")); m_pgPropAxisLimit = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Axis limit"), wxPG_LABEL, wxT("")) ); m_pgPropAxisLimit->SetHelpString(wxT("")); @@ -147,13 +147,13 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_pgPropXMin = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("X min"), wxPG_LABEL, 0) ); m_pgPropXMin->SetHelpString(wxT("")); - m_pgPropXMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("X max"), wxPG_LABEL, 0) ); + m_pgPropXMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("X max"), wxPG_LABEL, 1) ); m_pgPropXMax->SetHelpString(wxT("")); m_pgPropYMin = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y min"), wxPG_LABEL, 0) ); m_pgPropYMin->SetHelpString(wxT("")); - m_pgPropYMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y max"), wxPG_LABEL, 0) ); + m_pgPropYMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y max"), wxPG_LABEL, 1) ); m_pgPropYMax->SetHelpString(wxT("")); m_pgMgr->SetMinSize(wxSize(250,250)); @@ -175,12 +175,28 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti } #endif // Connect events + this->Connect(m_menuItemSaveImage->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSaveImageClick), NULL, this); + this->Connect(m_menuItemSendToClipboard->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSendClipClick), NULL, this); + this->Connect(m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuExitClick), NULL, this); + this->Connect(m_menuItemFit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuFitClick), NULL, this); + this->Connect(m_menuItemShowGrid->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowGridClick), NULL, this); + this->Connect(m_menuItemShowLabel->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowLabelClick), NULL, this); + this->Connect(m_menuItemShowCoordinates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowCoordinatesClick), NULL, this); + this->Connect(m_menuItemDarkTheme->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuDarkThemeClick), NULL, this); m_pgMgr->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this); } ChartViewBase::~ChartViewBase() { + this->Disconnect(m_menuItemSaveImage->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSaveImageClick), NULL, this); + this->Disconnect(m_menuItemSendToClipboard->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSendClipClick), NULL, this); + this->Disconnect(m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuExitClick), NULL, this); + this->Disconnect(m_menuItemFit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuFitClick), NULL, this); + this->Disconnect(m_menuItemShowGrid->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowGridClick), NULL, this); + this->Disconnect(m_menuItemShowLabel->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowLabelClick), NULL, this); + this->Disconnect(m_menuItemShowCoordinates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowCoordinatesClick), NULL, this); + this->Disconnect(m_menuItemDarkTheme->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuDarkThemeClick), NULL, this); m_pgMgr->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this); } diff --git a/Project/ChartViewBase.h b/Project/ChartViewBase.h index 1b67f7b..b7d6494 100644 --- a/Project/ChartViewBase.h +++ b/Project/ChartViewBase.h @@ -42,7 +42,7 @@ protected: wxMenuBar* m_menuBar; wxMenu* m_menuFile; wxMenuItem* m_menuItemSaveImage; - wxMenuItem* m_menuItemSandToClipboard; + wxMenuItem* m_menuItemSendToClipboard; wxMenuItem* m_menuItemSeparator_1; wxMenuItem* m_menuItemExit; wxMenu* m_menuView; @@ -65,9 +65,9 @@ protected: wxPGProperty* m_pgPropYLabel; wxPGProperty* m_pgPropMargins; wxPGProperty* m_pgPropMarginsUp; - wxPGProperty* m_pgPropYMarginsBot; - wxPGProperty* m_pgPropYMarginsLeft; - wxPGProperty* m_pgPropYMarginsRight; + wxPGProperty* m_pgPropMarginsBot; + wxPGProperty* m_pgPropMarginsLeft; + wxPGProperty* m_pgPropMarginsRight; wxPGProperty* m_pgPropAxisLimit; wxPGProperty* m_pgPropXMin; wxPGProperty* m_pgPropXMax; @@ -75,6 +75,14 @@ protected: wxPGProperty* m_pgPropYMax; protected: + virtual void OnMenuSaveImageClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuSendClipClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuExitClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuFitClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuShowGridClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuShowLabelClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuShowCoordinatesClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuDarkThemeClick(wxCommandEvent& event) { event.Skip(); } virtual void OnPropertyGridChange(wxPropertyGridEvent& event) { event.Skip(); } public: diff --git a/Project/ElementPlotData.cpp b/Project/ElementPlotData.cpp new file mode 100644 index 0000000..6639802 --- /dev/null +++ b/Project/ElementPlotData.cpp @@ -0,0 +1,22 @@ +#include "ElementPlotData.h" + +ElementPlotData::ElementPlotData(wxString name, CurveType type) +{ + m_name = name; + m_curveType = type; +} + +ElementPlotData::~ElementPlotData() {} +void ElementPlotData::AddData(std::vector<double> values, wxString name) +{ + PlotData* data = new PlotData(); + data->SetName(name); + data->SetValues(values); + data->SetPlot(false); + data->SetAxis(0); + data->SetColour(*wxBLACK); + data->SetPenType(wxPENSTYLE_SOLID); + data->SetThick(1); + + m_elementData.push_back(data); +} diff --git a/Project/ElementPlotData.h b/Project/ElementPlotData.h new file mode 100644 index 0000000..64bc03e --- /dev/null +++ b/Project/ElementPlotData.h @@ -0,0 +1,82 @@ +#ifndef ELEMENTPLOTDATA_H +#define ELEMENTPLOTDATA_H + +#include <wx/treectrl.h> +#include <wx/colour.h> +#include <wx/pen.h> + +#include <vector> + +class PlotData : public wxTreeItemData +{ + public: + PlotData() {} + ~PlotData() {} + void SetAxis(int axis) { m_axis = axis; } + void SetColour(const wxColour& colour) { m_colour = colour; } + void SetName(const wxString& name) { m_name = name; } + void SetPenType(const wxPenStyle& penType) { m_penType = penType; } + void SetPlot(bool plot) { m_plot = plot; } + void SetThick(int thick) { m_thick = thick; } + void SetValues(const std::vector<double>& values) { m_values = values; } + int GetAxis() const { return m_axis; } + wxColour GetColour() const { return m_colour; } + wxString GetName() const { return m_name; } + wxPenStyle GetPenType() const { return m_penType; } + bool IsPlot() const { return m_plot; } + int GetThick() const { return m_thick; } + std::vector<double> GetValues() const { return m_values; } + protected: + std::vector<double> m_values; + wxString m_name; + bool m_plot; + wxColour m_colour; + int m_thick; + wxPenStyle m_penType; + int m_axis; +}; + +class ElementPlotData +{ + public: + enum CurveType { + CT_TIME = 0, + CT_BUS, + CT_SYNC_GENERATOR, + CT_SYNC_COMPENSATOR, + CT_TRANSFORMER, + CT_LINE, + CT_IND_MOTOR, + CT_SHUNT_REACTOR, + CT_SHUNT_CAPACITOR, + CT_LOAD, + }; + ElementPlotData(wxString name, CurveType type); + ~ElementPlotData(); + + wxString GetName() const { return m_name; } + void SetName(wxString name) { m_name = name; } + CurveType GetCurveType() const { return m_curveType; } + PlotData* GetPlotData(int index) const { return m_elementData[index]; } + void AddData(std::vector<double> values, wxString name); + + int GetElementDataNumber() const { return static_cast<int>(m_elementData.size()); } + std::vector<double> GetValues(int index) const { return m_elementData[index]->GetValues(); } + void SetValues(int index, std::vector<double> values) { m_elementData[index]->SetValues(values); } + wxString GetDataName(int index) const { return m_elementData[index]->GetName(); } + void SetDataName(int index, wxString name) { m_elementData[index]->SetName(name); } + wxColour GetColour(int index) const { return m_elementData[index]->GetColour(); } + void SetColour(int index, wxColour colour) { m_elementData[index]->SetColour(colour); } + int GetThick(int index) const { return m_elementData[index]->GetThick(); } + void SetThick(int index, int thick) { m_elementData[index]->SetThick(thick); } + wxPenStyle GetPenType(int index) const { return m_elementData[index]->GetPenType(); } + void SetPenType(int index, wxPenStyle penType) { m_elementData[index]->SetPenType(penType); } + int GetAxis(int index) const { return m_elementData[index]->GetAxis(); } + void SetAxis(int index, int axis) { m_elementData[index]->SetAxis(axis); } + protected: + wxString m_name; + CurveType m_curveType; + std::vector<PlotData*> m_elementData; +}; + +#endif // ELEMENTPLOTDATA_H diff --git a/Project/Project.mk b/Project/Project.mk index 8b14dc2..b374fd4 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=NDSE-69 -Date :=25/04/2017 +Date :=26/04/2017 CodeLitePath :="C:/Program Files/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC @@ -64,14 +64,14 @@ AS := C:/TDM-GCC-64/bin/as.exe CodeLiteDir:=C:\Program Files\CodeLite WXWIN:=C:\wxWidgets-3.1.0 WXCFG:=gcc_dll\mswu -Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/win_resources.rc$(ObjectSuffix) $(IntermediateDirectory)/ElementDataObject.cpp$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxGLString.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditor.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/Camera.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/ElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/Line.cpp$(ObjectSuffix) $(IntermediateDirectory)/Transformer.cpp$(ObjectSuffix) $(IntermediateDirectory)/Machines.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncGenerator.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Branch.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/SyncMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Shunt.cpp$(ObjectSuffix) $(IntermediateDirectory)/Load.cpp$(ObjectSuffix) $(IntermediateDirectory)/Inductor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Capacitor.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerFlow.cpp$(ObjectSuffix) $(IntermediateDirectory)/Fault.cpp$(ObjectSuffix) $(IntermediateDirectory)/Text.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/GraphicalElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunction.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConnectionLine.cpp$(ObjectSuffix) $(IntermediateDirectory)/Sum.cpp$(ObjectSuffix) $(IntermediateDirectory)/Multiplier.cpp$(ObjectSuffix) $(IntermediateDirectory)/Limiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Exponential.cpp$(ObjectSuffix) $(IntermediateDirectory)/Constant.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/Gain.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControl.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementContainer.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneratorStabForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SwitchingForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransformerForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LoadForm.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/ReactiveShuntElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotorForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMachineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TextForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunctionForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SumForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ExponentialForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConstantForm.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/GainForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControlForm.cpp$(ObjectSuffix) +Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/win_resources.rc$(ObjectSuffix) $(IntermediateDirectory)/ElementDataObject.cpp$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxGLString.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/ControlEditor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Camera.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/Line.cpp$(ObjectSuffix) $(IntermediateDirectory)/Transformer.cpp$(ObjectSuffix) $(IntermediateDirectory)/Machines.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncGenerator.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotor.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Branch.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Shunt.cpp$(ObjectSuffix) $(IntermediateDirectory)/Load.cpp$(ObjectSuffix) $(IntermediateDirectory)/Inductor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Capacitor.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerFlow.cpp$(ObjectSuffix) $(IntermediateDirectory)/Fault.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Text.cpp$(ObjectSuffix) $(IntermediateDirectory)/GraphicalElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunction.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConnectionLine.cpp$(ObjectSuffix) $(IntermediateDirectory)/Sum.cpp$(ObjectSuffix) $(IntermediateDirectory)/Multiplier.cpp$(ObjectSuffix) $(IntermediateDirectory)/Limiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Exponential.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Constant.cpp$(ObjectSuffix) $(IntermediateDirectory)/Gain.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControl.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementContainer.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneratorStabForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SwitchingForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransformerForm.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/LoadForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ReactiveShuntElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotorForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMachineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TextForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunctionForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SumForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ExponentialForm.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/ConstantForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GainForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControlForm.cpp$(ObjectSuffix) @@ -128,6 +128,14 @@ $(IntermediateDirectory)/Element.cpp$(DependSuffix): Element.cpp $(IntermediateDirectory)/Element.cpp$(PreprocessSuffix): Element.cpp $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/Element.cpp$(PreprocessSuffix) Element.cpp +$(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix): ElementPlotData.cpp $(IntermediateDirectory)/ElementPlotData.cpp$(DependSuffix) + $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ElementPlotData.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix) $(IncludePath) +$(IntermediateDirectory)/ElementPlotData.cpp$(DependSuffix): ElementPlotData.cpp + @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/ElementPlotData.cpp$(DependSuffix) -MM ElementPlotData.cpp + +$(IntermediateDirectory)/ElementPlotData.cpp$(PreprocessSuffix): ElementPlotData.cpp + $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ElementPlotData.cpp$(PreprocessSuffix) ElementPlotData.cpp + $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix): ArtMetro.cpp $(IntermediateDirectory)/ArtMetro.cpp$(DependSuffix) $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ArtMetro.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IncludePath) $(IntermediateDirectory)/ArtMetro.cpp$(DependSuffix): ArtMetro.cpp diff --git a/Project/Project.project b/Project/Project.project index 3ff716c..6671989 100644 --- a/Project/Project.project +++ b/Project/Project.project @@ -50,6 +50,7 @@ <File Name="IOControl.cpp"/> <File Name="ControlElementContainer.cpp"/> </VirtualDirectory> + <File Name="ElementPlotData.cpp"/> </VirtualDirectory> <VirtualDirectory Name="view"> <File Name="ArtMetro.cpp"/> @@ -140,6 +141,7 @@ <File Name="IOControl.h"/> <File Name="ControlElementContainer.h"/> </VirtualDirectory> + <File Name="ElementPlotData.h"/> </VirtualDirectory> <VirtualDirectory Name="view"> <File Name="ArtMetro.h"/> diff --git a/Project/Project.txt b/Project/Project.txt index d80be54..fbf464d 100644 --- a/Project/Project.txt +++ b/Project/Project.txt @@ -1 +1 @@ -./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/ElementDataObject.cpp.o ./Release/Element.cpp.o ./Release/ArtMetro.cpp.o ./Release/wxGLString.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/FileHanding.cpp.o ./Release/ControlEditor.cpp.o ./Release/Camera.cpp.o ./Release/ChartView.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/ChartViewBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.cpp.o ./Release/ChartViewBase.cpp.o ./Release/Bus.cpp.o ./Release/Line.cpp.o ./Release/Transformer.cpp.o ./Release/Machines.cpp.o ./Release/SyncGenerator.cpp.o ./Release/IndMotor.cpp.o ./Release/Branch.cpp.o ./Release/SyncMotor.cpp.o ./Release/Shunt.cpp.o ./Release/Load.cpp.o ./Release/Inductor.cpp.o ./Release/Capacitor.cpp.o ./Release/PowerElement.cpp.o ./Release/ElectricCalculation.cpp.o ./Release/PowerFlow.cpp.o ./Release/Fault.cpp.o ./Release/Text.cpp.o ./Release/GraphicalElement.cpp.o ./Release/ControlElement.cpp.o ./Release/TransferFunction.cpp.o ./Release/ConnectionLine.cpp.o ./Release/Sum.cpp.o ./Release/Multiplier.cpp.o ./Release/Limiter.cpp.o ./Release/RateLimiter.cpp.o ./Release/Exponential.cpp.o ./Release/Constant.cpp.o ./Release/Gain.cpp.o ./Release/IOControl.cpp.o ./Release/ControlElementContainer.cpp.o ./Release/wxMathPlot_mathplot.cpp.o ./Release/BusForm.cpp.o ./Release/GeneratorStabForm.cpp.o ./Release/LineForm.cpp.o ./Release/SwitchingForm.cpp.o ./Release/TransformerForm.cpp.o ./Release/LoadForm.cpp.o ./Release/ReactiveShuntElementForm.cpp.o ./Release/IndMotorForm.cpp.o ./Release/SyncMachineForm.cpp.o ./Release/TextForm.cpp.o ./Release/TransferFunctionForm.cpp.o ./Release/SumForm.cpp.o ./Release/LimiterForm.cpp.o ./Release/RateLimiterForm.cpp.o ./Release/ExponentialForm.cpp.o ./Release/ConstantForm.cpp.o ./Release/GainForm.cpp.o ./Release/IOControlForm.cpp.o +./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/ElementDataObject.cpp.o ./Release/Element.cpp.o ./Release/ElementPlotData.cpp.o ./Release/ArtMetro.cpp.o ./Release/wxGLString.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/FileHanding.cpp.o ./Release/ControlEditor.cpp.o ./Release/Camera.cpp.o ./Release/ChartView.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/ChartViewBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.cpp.o ./Release/ChartViewBase.cpp.o ./Release/Bus.cpp.o ./Release/Line.cpp.o ./Release/Transformer.cpp.o ./Release/Machines.cpp.o ./Release/SyncGenerator.cpp.o ./Release/IndMotor.cpp.o ./Release/Branch.cpp.o ./Release/SyncMotor.cpp.o ./Release/Shunt.cpp.o ./Release/Load.cpp.o ./Release/Inductor.cpp.o ./Release/Capacitor.cpp.o ./Release/PowerElement.cpp.o ./Release/ElectricCalculation.cpp.o ./Release/PowerFlow.cpp.o ./Release/Fault.cpp.o ./Release/Text.cpp.o ./Release/GraphicalElement.cpp.o ./Release/ControlElement.cpp.o ./Release/TransferFunction.cpp.o ./Release/ConnectionLine.cpp.o ./Release/Sum.cpp.o ./Release/Multiplier.cpp.o ./Release/Limiter.cpp.o ./Release/RateLimiter.cpp.o ./Release/Exponential.cpp.o ./Release/Constant.cpp.o ./Release/Gain.cpp.o ./Release/IOControl.cpp.o ./Release/ControlElementContainer.cpp.o ./Release/wxMathPlot_mathplot.cpp.o ./Release/BusForm.cpp.o ./Release/GeneratorStabForm.cpp.o ./Release/LineForm.cpp.o ./Release/SwitchingForm.cpp.o ./Release/TransformerForm.cpp.o ./Release/LoadForm.cpp.o ./Release/ReactiveShuntElementForm.cpp.o ./Release/IndMotorForm.cpp.o ./Release/SyncMachineForm.cpp.o ./Release/TextForm.cpp.o ./Release/TransferFunctionForm.cpp.o ./Release/SumForm.cpp.o ./Release/LimiterForm.cpp.o ./Release/RateLimiterForm.cpp.o ./Release/ExponentialForm.cpp.o ./Release/ConstantForm.cpp.o ./Release/GainForm.cpp.o ./Release/IOControlForm.cpp.o |