summaryrefslogtreecommitdiffstats
path: root/Project
diff options
context:
space:
mode:
Diffstat (limited to 'Project')
-rw-r--r--Project/ChartView.cpp134
-rw-r--r--Project/ChartView.h16
-rw-r--r--Project/ChartView.wxcp84
-rw-r--r--Project/ChartViewBase.cpp36
-rw-r--r--Project/ChartViewBase.h16
-rw-r--r--Project/ElementPlotData.cpp22
-rw-r--r--Project/ElementPlotData.h82
-rw-r--r--Project/Project.mk26
-rw-r--r--Project/Project.project2
-rw-r--r--Project/Project.txt2
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