summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Project/ChartView.cpp446
-rw-r--r--Project/ChartView.h65
-rw-r--r--Project/ChartView.wxcp1112
-rw-r--r--Project/ChartViewBase.cpp200
-rw-r--r--Project/ChartViewBase.h98
-rw-r--r--Project/ChartViewBitmaps.cpp49
-rw-r--r--Project/ControlEditor.cpp34
-rw-r--r--Project/ControlEditor.h3
-rw-r--r--Project/ControlEditor.wxcp9
-rw-r--r--Project/ControlEditorBase.cpp2
-rw-r--r--Project/ControlEditorBase.h2
-rw-r--r--Project/ElementPlotData.cpp22
-rw-r--r--Project/ElementPlotData.h84
-rw-r--r--Project/Project.mk49
-rw-r--r--Project/Project.project7
-rw-r--r--Project/Project.txt2
-rw-r--r--Project/data/lang/pt_BR/pt_BR.mobin6405 -> 6544 bytes
-rw-r--r--Project/data/lang/pt_BR/pt_BR.po580
-rw-r--r--Project/main.cpp3
19 files changed, 2514 insertions, 253 deletions
diff --git a/Project/ChartView.cpp b/Project/ChartView.cpp
new file mode 100644
index 0000000..199060a
--- /dev/null
+++ b/Project/ChartView.cpp
@@ -0,0 +1,446 @@
+#include "ChartView.h"
+#include "ElementPlotData.h"
+
+ChartView::ChartView(wxWindow* parent, std::vector<ElementPlotData> epdList, std::vector<double> time)
+ : ChartViewBase(parent)
+{
+ m_epdList = epdList;
+ m_time = time;
+ m_xAxisValues = time;
+
+ 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);
+
+ // Add line type choices
+ m_pgProplineType->AddChoice(_("Solid"), wxPENSTYLE_SOLID);
+ m_pgProplineType->AddChoice(_("Dot"), wxPENSTYLE_DOT);
+ m_pgProplineType->AddChoice(_("Dash"), wxPENSTYLE_SHORT_DASH);
+ m_pgProplineType->AddChoice(_("Dot and dash"), wxPENSTYLE_DOT_DASH);
+ m_pgProplineType->AddChoice(_("Cross"), wxPENSTYLE_CROSS_HATCH);
+ m_pgProplineType->AddChoice(_("Driagonal cross"), wxPENSTYLE_CROSSDIAG_HATCH);
+
+ SetMPWindow();
+ GetSizer()->Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5));
+ SetTreectrl();
+ Layout();
+ SetInitialSize();
+
+ BuildColourList();
+}
+
+ChartView::~ChartView() {}
+void ChartView::SetMPWindow()
+{
+ m_mpWindow = new mpWindow(this, wxID_ANY);
+
+ m_mpWindow->SetMargins(20, 10, 40, 60);
+ m_xaxis = new mpScaleX("", mpALIGN_BOTTOM, true);
+ m_yaxis = new mpScaleY("", mpALIGN_LEFT, true);
+ m_xaxis->SetDrawOutsideMargins(false);
+ m_yaxis->SetDrawOutsideMargins(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);
+
+ m_chartTitle = new mpText("", 50, 0);
+ wxFont chartTitleFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);
+ m_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(m_chartTitle);
+
+ m_leg->SetVisible(m_showLeg);
+ m_coords->SetVisible(m_showCoords);
+
+ m_mpWindow->EnableDoubleBuffer(true);
+ m_mpWindow->LockAspect(false);
+ Fit();
+}
+
+void ChartView::SetTreectrl()
+{
+ wxTreeItemId rootID = m_treeCtrl->AddRoot(wxT("root"));
+ m_treeTimeID = m_treeCtrl->AppendItem(rootID, _("Time"));
+ m_treeCtrl->SetItemTextColour(m_treeTimeID, *wxRED);
+
+ bool firstElement[ElementPlotData::NUM_ELEMENTS];
+ for(int i = 0; i < ElementPlotData::NUM_ELEMENTS; ++i) firstElement[i] = true;
+
+ wxString rootElementName[ElementPlotData::NUM_ELEMENTS];
+ rootElementName[ElementPlotData::CT_BUS] = _("Bus");
+ rootElementName[ElementPlotData::CT_IND_MOTOR] = _("Induction motor");
+ rootElementName[ElementPlotData::CT_LINE] = _("Line");
+ rootElementName[ElementPlotData::CT_LOAD] = _("Load");
+ rootElementName[ElementPlotData::CT_SHUNT_CAPACITOR] = _("Capacitor");
+ rootElementName[ElementPlotData::CT_SHUNT_INDUCTOR] = _("Inductor");
+ rootElementName[ElementPlotData::CT_SYNC_COMPENSATOR] = _("Synchronous compensator");
+ rootElementName[ElementPlotData::CT_SYNC_GENERATOR] = _("Synchronous generator");
+ rootElementName[ElementPlotData::CT_TRANSFORMER] = _("Transformer");
+
+ wxTreeItemId rootItemID[ElementPlotData::NUM_ELEMENTS];
+
+ for(auto it = m_epdList.begin(), itEnd = m_epdList.end(); it != itEnd; ++it) {
+ ElementPlotData data = *it;
+ ElementPlotData::CurveType curveType = data.GetCurveType();
+
+ if(firstElement[curveType]) {
+ rootItemID[curveType] = m_treeCtrl->AppendItem(rootID, rootElementName[curveType]);
+ firstElement[curveType] = false;
+ }
+ wxTreeItemId itemID = m_treeCtrl->AppendItem(rootItemID[curveType], data.GetName());
+ for(int i = 0; i < data.GetElementDataNumber(); ++i) {
+ m_treeCtrl->AppendItem(itemID, data.GetDataName(i), -1, -1, data.GetPlotData(i));
+ }
+ }
+}
+
+void ChartView::OnPropertyGridChange(wxPropertyGridEvent& event)
+{
+ bool fit = false;
+
+ if(m_treeCtrl->GetSelection()) {
+ if(PlotData* data = dynamic_cast<PlotData*>(m_treeCtrl->GetItemData(m_treeCtrl->GetSelection()))) {
+ if(event.GetPropertyName() == _("Draw")) {
+ bool isPlotting = m_pgPropDraw->GetValue();
+ data->SetPlot(isPlotting);
+ if(isPlotting) {
+ wxColour colour = GetNextColour();
+ data->SetColour(colour);
+ m_pgPropColor->SetValue(static_cast<wxVariant>(colour));
+ }
+ fit = true;
+ } else if(event.GetPropertyName() == _("Color")) {
+ wxColour colour;
+ colour << m_pgPropColor->GetValue();
+ data->SetColour(colour);
+ } else if(event.GetPropertyName() == _("Thickness")) {
+ data->SetThick(m_pgProplineThick->GetValue().GetInteger());
+ } else if(event.GetPropertyName() == _("Type")) {
+ data->SetPenType(static_cast<wxPenStyle>(m_pgProplineType->GetValue().GetInteger()));
+ } else if(event.GetPropertyName() == _("Axis")) {
+ int axis = m_pgProplineAxis->GetValue().GetInteger();
+ if(axis == 1) { // Y
+ // All lines to Y axis
+ AllToYAxis(m_treeCtrl->GetRootItem());
+ // curva selecionada para o eixo X
+ m_treeCtrl->SetItemTextColour(m_treeCtrl->GetSelection(), *wxRED);
+ m_xAxisValues = data->GetValues();
+ }
+ data->SetAxis(axis);
+ fit = true;
+ }
+ }
+ }
+
+ 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)
+{
+ int x = m_mpWindow->GetScreenPosition().x;
+ int y = m_mpWindow->GetScreenPosition().y;
+ int width = m_mpWindow->GetSize().GetWidth();
+ int height = m_mpWindow->GetSize().GetHeight();
+
+ wxScreenDC dcScreen;
+ wxBitmap screenshot(width, height);
+
+ wxMemoryDC memDC;
+ memDC.SelectObject(screenshot);
+
+ memDC.Blit(0, 0, width, height, &dcScreen, x, y);
+ memDC.SelectObject(wxNullBitmap);
+
+ wxFileDialog saveFileDialog(
+ this, _("Save image"), "", "",
+ "PNG image file (*.png)|*.png|Bitmap image file (*.bmp)|*.bmp|JPEG image file (*.jpg)|*.jpg",
+ wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
+ if(saveFileDialog.ShowModal() == wxID_CANCEL) return;
+
+ wxFileName imagePath(saveFileDialog.GetPath());
+ wxBitmapType imageType = wxBITMAP_TYPE_BMP;
+
+ if(imagePath.GetExt() == "png")
+ imageType = wxBITMAP_TYPE_PNG;
+ else if(imagePath.GetExt() == "jpg")
+ imageType = wxBITMAP_TYPE_JPEG;
+
+ screenshot.SaveFile(imagePath.GetFullPath(), imageType);
+}
+
+void ChartView::OnMenuSendClipClick(wxCommandEvent& event)
+{
+ int x = m_mpWindow->GetScreenPosition().x;
+ int y = m_mpWindow->GetScreenPosition().y;
+ int width = m_mpWindow->GetSize().GetWidth();
+ int height = m_mpWindow->GetSize().GetHeight();
+
+ wxScreenDC dcScreen;
+ wxBitmap screenshot(width, height);
+
+ wxMemoryDC memDC;
+ memDC.SelectObject(screenshot);
+
+ memDC.Blit(0, 0, width, height, &dcScreen, x, y);
+ memDC.SelectObject(wxNullBitmap);
+
+ if(wxTheClipboard->Open()) {
+ wxTheClipboard->SetData(new wxBitmapDataObject(screenshot));
+ wxTheClipboard->Close();
+
+ wxMessageDialog msgDialog(this, _("Chart send to clipboard"), _("Info"), wxOK | wxICON_INFORMATION,
+ wxDefaultPosition);
+ msgDialog.ShowModal();
+ } else {
+ wxMessageDialog msgDialog(this, _("It was not possible to send to clipboard"), _("Error"), wxOK | wxICON_ERROR,
+ wxDefaultPosition);
+ msgDialog.ShowModal();
+ }
+}
+
+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::UpdatePlot(bool fit)
+{
+ wxRect legRect = m_leg->GetRectangle();
+ wxRect coordsRect = m_coords->GetRectangle();
+ m_mpWindow->DelAllLayers(true, false);
+
+ // GoAllTrees(treeCtrl_ChartSelection->GetRootItem());
+ UpdateAllPlots(m_treeCtrl->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);
+ }
+}
+
+void ChartView::OnTreeItemActivated(wxTreeEvent& event)
+{
+ if(PlotData* data = dynamic_cast<PlotData*>(m_treeCtrl->GetItemData(event.GetItem()))) {
+ bool isPlotting = data->IsPlot() ? false : true;
+ data->SetPlot(isPlotting);
+ m_pgPropDraw->SetValue(data->IsPlot());
+ if(isPlotting) {
+ wxColour colour = GetNextColour();
+ data->SetColour(colour);
+ m_pgPropColor->SetValue(static_cast<wxVariant>(colour));
+ }
+ UpdatePlot(true);
+ }
+
+ if(event.GetItem() == m_treeTimeID) {
+ AllToYAxis(m_treeCtrl->GetRootItem());
+ m_treeCtrl->SetItemTextColour(m_treeTimeID, *wxRED);
+ m_xAxisValues = m_time;
+ UpdatePlot(true);
+ }
+
+ event.Skip();
+}
+
+void ChartView::OnTreeItemSelectionChanged(wxTreeEvent& event)
+{
+ if(PlotData* data = dynamic_cast<PlotData*>(m_treeCtrl->GetItemData(event.GetItem()))) {
+ m_pgPropDraw->SetValue(data->IsPlot());
+ wxVariant colour;
+ colour << data->GetColour();
+ m_pgPropColor->SetValue(colour);
+ m_pgProplineThick->SetValue(data->GetThick());
+ m_pgProplineType->SetValue(data->GetPenType());
+ m_pgProplineAxis->SetValue(data->GetAxis());
+ }
+ event.Skip();
+}
+
+void ChartView::BuildColourList()
+{
+ m_colourList.push_back(wxColour(255, 0, 0));
+ m_colourList.push_back(wxColour(0, 0, 255));
+ m_colourList.push_back(wxColour(0, 255, 0));
+ m_colourList.push_back(wxColour(255, 128, 0));
+ m_colourList.push_back(wxColour(128, 0, 255));
+ m_colourList.push_back(wxColour(0, 255, 128));
+ m_colourList.push_back(wxColour(255, 255, 0));
+ m_colourList.push_back(wxColour(255, 0, 255));
+ m_colourList.push_back(wxColour(0, 255, 255));
+ m_colourList.push_back(wxColour(128, 255, 0));
+ m_colourList.push_back(wxColour(255, 0, 128));
+ m_colourList.push_back(wxColour(0, 128, 255));
+ m_colourList.push_back(wxColour(128, 128, 128));
+ m_colourList.push_back(*wxBLACK);
+ m_itColourList = --m_colourList.end();
+}
+
+wxColour ChartView::GetNextColour()
+{
+ if(*m_itColourList == *wxBLACK)
+ m_itColourList = m_colourList.begin();
+ else
+ ++m_itColourList;
+
+ return *m_itColourList;
+}
+
+wxTreeItemId ChartView::AllToYAxis(wxTreeItemId root)
+{
+ wxTreeItemIdValue cookie;
+ wxTreeItemId item = m_treeCtrl->GetFirstChild(root, cookie);
+ wxTreeItemId child;
+
+ while(item.IsOk()) {
+ m_treeCtrl->SetItemTextColour(item, *wxBLACK);
+ if(PlotData* data = dynamic_cast<PlotData*>(m_treeCtrl->GetItemData(item))) data->SetAxis(0); // X axis.
+
+ if(m_treeCtrl->ItemHasChildren(item)) {
+ wxTreeItemId nextChild = AllToYAxis(item);
+ if(nextChild.IsOk()) return nextChild;
+ }
+ item = m_treeCtrl->GetNextChild(root, cookie);
+ }
+
+ wxTreeItemId dummyID;
+ return dummyID;
+}
+
+wxTreeItemId ChartView::UpdateAllPlots(wxTreeItemId root)
+{
+ wxTreeItemIdValue cookie;
+ wxTreeItemId item = m_treeCtrl->GetFirstChild(root, cookie);
+ wxTreeItemId child;
+
+ while(item.IsOk()) {
+ if(PlotData* data = dynamic_cast<PlotData*>(m_treeCtrl->GetItemData(item))) {
+ if(data->IsPlot()) {
+ wxString parentName = m_treeCtrl->GetItemText(m_treeCtrl->GetItemParent(item));
+ mpFXYVector* newLayer = new mpFXYVector(data->GetName() + " (" + parentName + ")");
+ newLayer->SetData(m_xAxisValues, data->GetValues());
+ newLayer->SetContinuity(true);
+ wxPen layerPen(data->GetColour(), data->GetThick(), data->GetPenType());
+ newLayer->SetPen(layerPen);
+ newLayer->SetDrawOutsideMargins(false);
+ newLayer->ShowName(false);
+
+ m_mpWindow->AddLayer(newLayer);
+ }
+ }
+
+ if(m_treeCtrl->ItemHasChildren(item)) {
+ wxTreeItemId nextChild = UpdateAllPlots(item);
+ if(nextChild.IsOk()) return nextChild;
+ }
+ item = m_treeCtrl->GetNextChild(root, cookie);
+ }
+
+ wxTreeItemId dummyID;
+ return dummyID;
+}
diff --git a/Project/ChartView.h b/Project/ChartView.h
new file mode 100644
index 0000000..b40a63d
--- /dev/null
+++ b/Project/ChartView.h
@@ -0,0 +1,65 @@
+#ifndef CHARTVIEW_H
+#define CHARTVIEW_H
+#include "ChartViewBase.h"
+#include "wxMathPlot/mathplot.h"
+
+#include <wx/msgdlg.h>
+#include <wx/clipbrd.h>
+#include <wx/bitmap.h>
+#include <wx/dcscreen.h>
+#include <wx/filedlg.h>
+
+class ElementPlotData;
+
+class ChartView : public ChartViewBase
+{
+ public:
+ ChartView(wxWindow* parent, std::vector<ElementPlotData> epdList, std::vector<double> time);
+ virtual ~ChartView();
+
+ void Fit();
+ void UpdatePlot(bool fit = true);
+
+ protected:
+ virtual void OnTreeItemActivated(wxTreeEvent& event);
+ virtual void OnTreeItemSelectionChanged(wxTreeEvent& event);
+ 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();
+ virtual void SetTreectrl();
+ virtual void BuildColourList();
+ virtual wxColour GetNextColour();
+ virtual wxTreeItemId AllToYAxis(wxTreeItemId root);
+ virtual wxTreeItemId UpdateAllPlots(wxTreeItemId root);
+
+ wxPGProperty* m_pgPropColor = NULL;
+
+ wxTreeItemId m_treeTimeID;
+
+ std::vector<ElementPlotData> m_epdList;
+ std::vector<double> m_time;
+ std::vector<double> m_xAxisValues;
+
+ mpWindow* m_mpWindow = NULL;
+ mpScaleX* m_xaxis = NULL;
+ mpScaleY* m_yaxis = NULL;
+ mpText* m_chartTitle = NULL;
+ mpInfoCoords* m_coords = NULL;
+ mpInfoLegend* m_leg = NULL;
+
+ bool m_hideGrid = false;
+ bool m_showLeg = false;
+ bool m_showCoords = false;
+ bool m_darkTheme = false;
+
+ std::vector<wxColour> m_colourList;
+ std::vector<wxColour>::iterator m_itColourList;
+};
+#endif // CHARTVIEW_H
diff --git a/Project/ChartView.wxcp b/Project/ChartView.wxcp
index 03dde90..c1d3cfc 100644
--- a/Project/ChartView.wxcp
+++ b/Project/ChartView.wxcp
@@ -1,12 +1,12 @@
{
"metadata": {
"m_generatedFilesDir": ".",
- "m_objCounter": 51,
+ "m_objCounter": 80,
"m_includeFiles": [],
"m_bitmapFunction": "wxCE3EBInitBitmapResources",
- "m_bitmapsFile": "ChartView_project_bitmaps.cpp",
+ "m_bitmapsFile": "ChartViewBitmaps.cpp",
"m_GenerateCodeTypes": 1,
- "m_outputFileName": "",
+ "m_outputFileName": "ChartViewBase",
"m_firstWindowId": 10000,
"m_useEnum": true,
"m_useUnderscoreMacro": true,
@@ -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": []
}]
}]
@@ -703,7 +759,7 @@
"m_events": [],
"m_children": [{
"m_type": 4401,
- "proportion": 1,
+ "proportion": 0,
"border": 5,
"gbSpan": "1,1",
"gbPosition": "0,0",
@@ -734,7 +790,7 @@
"border": 5,
"gbSpan": "1,1",
"gbPosition": "0,0",
- "m_styles": ["wxTR_DEFAULT_STYLE"],
+ "m_styles": ["wxTR_DEFAULT_STYLE", "wxTR_HIDE_ROOT"],
"m_sizerFlags": [],
"m_properties": [{
"type": "winid",
@@ -793,7 +849,21 @@
"m_label": "Style:",
"m_value": ""
}],
- "m_events": [],
+ "m_events": [{
+ "m_eventName": "wxEVT_COMMAND_TREE_ITEM_ACTIVATED",
+ "m_eventClass": "wxTreeEvent",
+ "m_eventHandler": "wxTreeEventHandler",
+ "m_functionNameAndSignature": "OnTreeItemActivated(wxTreeEvent& event)",
+ "m_description": "An item has been activated (e.g. double clicked).",
+ "m_noBody": false
+ }, {
+ "m_eventName": "wxEVT_COMMAND_TREE_SEL_CHANGED",
+ "m_eventClass": "wxTreeEvent",
+ "m_eventHandler": "wxTreeEventHandler",
+ "m_functionNameAndSignature": "OnTreeItemSelectionChanged(wxTreeEvent& event)",
+ "m_description": "Selection has changed.",
+ "m_noBody": false
+ }],
"m_children": []
}, {
"m_type": 4485,
@@ -814,7 +884,7 @@
}, {
"type": "string",
"m_label": "Minimum Size:",
- "m_value": "250,-1"
+ "m_value": "250,250"
}, {
"type": "string",
"m_label": "Name:",
@@ -868,7 +938,14 @@
"m_label": "Set Splitter Left:",
"m_value": false
}],
- "m_events": [],
+ "m_events": [{
+ "m_eventName": "wxEVT_PG_CHANGED",
+ "m_eventClass": "wxPropertyGridEvent",
+ "m_eventHandler": "wxPropertyGridEventHandler",
+ "m_functionNameAndSignature": "OnPropertyGridChange(wxPropertyGridEvent& event)",
+ "m_description": "Respond to wxEVT_PG_CHANGED event, generated when property value has been changed by the user",
+ "m_noBody": false
+ }],
"m_children": [{
"m_type": 4486,
"proportion": 0,
@@ -880,11 +957,11 @@
"m_properties": [{
"type": "string",
"m_label": "Name:",
- "m_value": "m_pgPropCurveProp"
+ "m_value": "m_pgPropLineProp"
}, {
"type": "string",
"m_label": "Label:",
- "m_value": "Curve properties"
+ "m_value": "Line properties"
}, {
"type": "multi-string",
"m_label": "Tooltip:",
@@ -1009,11 +1086,11 @@
"m_properties": [{
"type": "string",
"m_label": "Name:",
- "m_value": "m_pgPropColor"
+ "m_value": "m_pgProplineThick"
}, {
"type": "string",
"m_label": "Label:",
- "m_value": "Color"
+ "m_value": "Thickness"
}, {
"type": "multi-string",
"m_label": "Tooltip:",
@@ -1025,12 +1102,77 @@
}, {
"type": "choice",
"m_label": "Property Editor Control",
- "m_selection": 6,
+ "m_selection": 1,
"m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"]
}, {
"type": "choice",
"m_label": "Kind:",
- "m_selection": 15,
+ "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": "1"
+ }, {
+ "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_pgProplineType"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Type"
+ }, {
+ "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": 2,
+ "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",
@@ -1074,11 +1216,11 @@
"m_properties": [{
"type": "string",
"m_label": "Name:",
- "m_value": "m_pgProplineThick"
+ "m_value": "m_pgProplineAxis"
}, {
"type": "string",
"m_label": "Label:",
- "m_value": "Line thickness"
+ "m_value": "Axis"
}, {
"type": "multi-string",
"m_label": "Tooltip:",
@@ -1090,12 +1232,12 @@
}, {
"type": "choice",
"m_label": "Property Editor Control",
- "m_selection": 1,
+ "m_selection": 2,
"m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"]
}, {
"type": "choice",
"m_label": "Kind:",
- "m_selection": 1,
+ "m_selection": 9,
"m_options": ["wxPropertyCategory", "wxIntProperty", "wxFloatProperty", "wxBoolProperty", "wxStringProperty", "wxLongStringProperty", "wxDirProperty", "wxArrayStringProperty", "wxFileProperty", "wxEnumProperty", "wxEditEnumProperty", "wxFlagsProperty", "wxDateProperty", "wxImageFileProperty", "wxFontProperty", "wxSystemColourProperty"]
}, {
"type": "string",
@@ -1104,7 +1246,7 @@
}, {
"type": "multi-string",
"m_label": "Choices:",
- "m_value": ""
+ "m_value": "Y;X"
}, {
"type": "multi-string",
"m_label": "Array Integer Values",
@@ -1193,76 +1335,854 @@
"colour": "<Default>"
}],
"m_events": [],
- "m_children": []
+ "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_pgPropChartTitle"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Chart title"
+ }, {
+ "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": 1,
+ "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"]
+ }, {
+ "type": "choice",
+ "m_label": "Kind:",
+ "m_selection": 4,
+ "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_pgPropXLabel"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "X axis label"
+ }, {
+ "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": 1,
+ "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"]
+ }, {
+ "type": "choice",
+ "m_label": "Kind:",
+ "m_selection": 4,
+ "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_pgPropYLabel"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Y axis label"
+ }, {
+ "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": 1,
+ "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"]
+ }, {
+ "type": "choice",
+ "m_label": "Kind:",
+ "m_selection": 4,
+ "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_pgPropMargins"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Margins"
+ }, {
+ "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": 4,
+ "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_pgPropMarginsUp"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Up"
+ }, {
+ "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": "20"
+ }, {
+ "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_pgPropMarginsBot"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Botton"
+ }, {
+ "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": "40"
+ }, {
+ "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_pgPropMarginsLeft"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Left"
+ }, {
+ "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": "60"
+ }, {
+ "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_pgPropMarginsRight"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Right"
+ }, {
+ "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": "10"
+ }, {
+ "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_pgPropAxisLimit"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Axis limit"
+ }, {
+ "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": 4,
+ "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_pgPropXMin"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "X min"
+ }, {
+ "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_pgPropXMax"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "X max"
+ }, {
+ "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": "1"
+ }, {
+ "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_pgPropYMin"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Y min"
+ }, {
+ "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_pgPropYMax"
+ }, {
+ "type": "string",
+ "m_label": "Label:",
+ "m_value": "Y max"
+ }, {
+ "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": "1"
+ }, {
+ "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": 4408,
- "proportion": 1,
- "border": 5,
- "gbSpan": "1,1",
- "gbPosition": "0,0",
- "m_styles": ["wxTAB_TRAVERSAL"],
- "m_sizerFlags": ["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": "100,300"
- }, {
- "type": "string",
- "m_label": "Name:",
- "m_value": "m_panelChart"
- }, {
- "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": []
}]
}]
}]
diff --git a/Project/ChartViewBase.cpp b/Project/ChartViewBase.cpp
new file mode 100644
index 0000000..4b33d5c
--- /dev/null
+++ b/Project/ChartViewBase.cpp
@@ -0,0 +1,200 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: ChartView.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#include "ChartViewBase.h"
+
+
+// Declare the bitmap loading function
+extern void wxCE3EBInitBitmapResources();
+
+static bool bBitmapLoaded = false;
+
+
+ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+ : wxFrame(parent, id, title, pos, size, style)
+{
+ if ( !bBitmapLoaded ) {
+ // We need to initialise the default bitmap handler
+ wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler);
+ wxCE3EBInitBitmapResources();
+ bBitmapLoaded = true;
+ }
+
+ m_menuBar = new wxMenuBar(0);
+ this->SetMenuBar(m_menuBar);
+
+ m_menuFile = new wxMenu();
+ m_menuBar->Append(m_menuFile, _("File"));
+
+ m_menuItemSaveImage = new wxMenuItem(m_menuFile, wxID_ANY, _("Save chart as image"), wxT(""), wxITEM_NORMAL);
+ m_menuFile->Append(m_menuItemSaveImage);
+
+ m_menuItemSendToClipboard = new wxMenuItem(m_menuFile, wxID_ANY, _("Send to clipboard"), wxT(""), wxITEM_NORMAL);
+ m_menuFile->Append(m_menuItemSendToClipboard);
+
+ m_menuFile->AppendSeparator();
+
+ m_menuItemExit = new wxMenuItem(m_menuFile, wxID_ANY, _("Exit"), wxT(""), wxITEM_NORMAL);
+ m_menuFile->Append(m_menuItemExit);
+
+ m_menuView = new wxMenu();
+ m_menuBar->Append(m_menuView, _("View"));
+
+ m_menuItemFit = new wxMenuItem(m_menuView, wxID_ANY, _("Fit"), wxT(""), wxITEM_NORMAL);
+ m_menuView->Append(m_menuItemFit);
+
+ m_menuView->AppendSeparator();
+
+ m_menuItemShowGrid = new wxMenuItem(m_menuView, wxID_ANY, _("Show grid"), wxT(""), wxITEM_CHECK);
+ m_menuView->Append(m_menuItemShowGrid);
+
+ m_menuItemShowLabel = new wxMenuItem(m_menuView, wxID_ANY, _("Show label"), wxT(""), wxITEM_CHECK);
+ m_menuView->Append(m_menuItemShowLabel);
+
+ m_menuItemShowCoordinates = new wxMenuItem(m_menuView, wxID_ANY, _("Show coordinates"), wxT(""), wxITEM_CHECK);
+ m_menuView->Append(m_menuItemShowCoordinates);
+
+ m_menuItemDarkTheme = new wxMenuItem(m_menuView, wxID_ANY, _("Dark theme"), wxT(""), wxITEM_CHECK);
+ m_menuView->Append(m_menuItemDarkTheme);
+
+ wxBoxSizer* boxSizer_lvl1_1 = new wxBoxSizer(wxHORIZONTAL);
+ this->SetSizer(boxSizer_lvl1_1);
+
+ wxBoxSizer* boxSizer_lvl2_1 = new wxBoxSizer(wxVERTICAL);
+
+ boxSizer_lvl1_1->Add(boxSizer_lvl2_1, 0, wxEXPAND, WXC_FROM_DIP(5));
+
+ m_treeCtrl = new wxTreeCtrl(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT);
+
+ boxSizer_lvl2_1->Add(m_treeCtrl, 1, 0, WXC_FROM_DIP(5));
+ m_treeCtrl->SetMinSize(wxSize(250,-1));
+
+ wxArrayString m_pgMgrArr;
+ wxUnusedVar(m_pgMgrArr);
+ wxArrayInt m_pgMgrIntArr;
+ wxUnusedVar(m_pgMgrIntArr);
+ m_pgMgr = new wxPropertyGridManager(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxPG_SPLITTER_AUTO_CENTER|wxPG_BOLD_MODIFIED);
+
+ boxSizer_lvl2_1->Add(m_pgMgr, 0, 0, WXC_FROM_DIP(5));
+
+ m_pgPropLineProp = m_pgMgr->Append( new wxPropertyCategory( _("Line properties") ) );
+ m_pgPropLineProp->SetHelpString(wxT(""));
+
+ m_pgPropDraw = m_pgMgr->AppendIn( m_pgPropLineProp, new wxBoolProperty( _("Draw"), wxPG_LABEL, 1) );
+ m_pgPropDraw->SetHelpString(wxT(""));
+ m_pgPropDraw->SetEditor( wxT("CheckBox") );
+
+ m_pgProplineThick = m_pgMgr->AppendIn( m_pgPropLineProp, new wxIntProperty( _("Thickness"), wxPG_LABEL, 1) );
+ m_pgProplineThick->SetHelpString(wxT(""));
+ m_pgProplineThick->SetEditor( wxT("TextCtrl") );
+
+ m_pgMgrArr.Clear();
+ m_pgMgrIntArr.Clear();
+ m_pgProplineType = m_pgMgr->AppendIn( m_pgPropLineProp, new wxEnumProperty( _("Type"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) );
+ m_pgProplineType->SetHelpString(wxT(""));
+ m_pgProplineType->SetEditor( wxT("Choice") );
+
+ m_pgMgrArr.Clear();
+ m_pgMgrIntArr.Clear();
+ m_pgMgrArr.Add(_("Y"));
+ m_pgMgrArr.Add(_("X"));
+ m_pgProplineAxis = m_pgMgr->AppendIn( m_pgPropLineProp, new wxEnumProperty( _("Axis"), wxPG_LABEL, m_pgMgrArr, m_pgMgrIntArr, 0) );
+ m_pgProplineAxis->SetHelpString(wxT(""));
+ m_pgProplineAxis->SetEditor( wxT("Choice") );
+
+ m_pgPropChartProp = m_pgMgr->Append( new wxPropertyCategory( _("Chart properties") ) );
+ m_pgPropChartProp->SetHelpString(wxT(""));
+
+ m_pgPropChartTitle = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Chart title"), wxPG_LABEL, wxT("")) );
+ m_pgPropChartTitle->SetHelpString(wxT(""));
+ m_pgPropChartTitle->SetEditor( wxT("TextCtrl") );
+
+ m_pgPropXLabel = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("X axis label"), wxPG_LABEL, wxT("")) );
+ m_pgPropXLabel->SetHelpString(wxT(""));
+ m_pgPropXLabel->SetEditor( wxT("TextCtrl") );
+
+ m_pgPropYLabel = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Y axis label"), wxPG_LABEL, wxT("")) );
+ m_pgPropYLabel->SetHelpString(wxT(""));
+ m_pgPropYLabel->SetEditor( wxT("TextCtrl") );
+
+ m_pgPropMargins = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Margins"), wxPG_LABEL, wxT("")) );
+ m_pgPropMargins->SetHelpString(wxT(""));
+
+ m_pgPropMarginsUp = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Up"), wxPG_LABEL, 20) );
+ m_pgPropMarginsUp->SetHelpString(wxT(""));
+
+ m_pgPropMarginsBot = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Botton"), wxPG_LABEL, 40) );
+ m_pgPropMarginsBot->SetHelpString(wxT(""));
+
+ m_pgPropMarginsLeft = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Left"), wxPG_LABEL, 60) );
+ m_pgPropMarginsLeft->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(""));
+
+ 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, 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, 1) );
+ m_pgPropYMax->SetHelpString(wxT(""));
+ m_pgMgr->SetMinSize(wxSize(250,250));
+
+ SetName(wxT("ChartViewBase"));
+ SetSize(-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
+ 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_treeCtrl->Connect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(ChartViewBase::OnTreeItemActivated), NULL, this);
+ m_treeCtrl->Connect(wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler(ChartViewBase::OnTreeItemSelectionChanged), 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_treeCtrl->Disconnect(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, wxTreeEventHandler(ChartViewBase::OnTreeItemActivated), NULL, this);
+ m_treeCtrl->Disconnect(wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler(ChartViewBase::OnTreeItemSelectionChanged), NULL, this);
+ m_pgMgr->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this);
+
+}
diff --git a/Project/ChartViewBase.h b/Project/ChartViewBase.h
new file mode 100644
index 0000000..2c7af3c
--- /dev/null
+++ b/Project/ChartViewBase.h
@@ -0,0 +1,98 @@
+//////////////////////////////////////////////////////////////////////
+// This file was auto-generated by codelite's wxCrafter Plugin
+// wxCrafter project file: ChartView.wxcp
+// Do not modify this file by hand!
+//////////////////////////////////////////////////////////////////////
+
+#ifndef _PSP_PROJECT_CHARTVIEW_BASE_CLASSES_H
+#define _PSP_PROJECT_CHARTVIEW_BASE_CLASSES_H
+
+#include <wx/settings.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_bmp.h>
+#include <wx/frame.h>
+#include <wx/iconbndl.h>
+#include <wx/artprov.h>
+#include <wx/sizer.h>
+#include <wx/menu.h>
+#include <wx/treectrl.h>
+#include <wx/propgrid/manager.h>
+#include <wx/propgrid/property.h>
+#include <wx/propgrid/advprops.h>
+#if wxVERSION_NUMBER >= 2900
+#include <wx/persist.h>
+#include <wx/persist/toplevel.h>
+#include <wx/persist/bookctrl.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 ChartViewBase : public wxFrame
+{
+protected:
+ wxMenuBar* m_menuBar;
+ wxMenu* m_menuFile;
+ wxMenuItem* m_menuItemSaveImage;
+ wxMenuItem* m_menuItemSendToClipboard;
+ wxMenuItem* m_menuItemSeparator_1;
+ wxMenuItem* m_menuItemExit;
+ wxMenu* m_menuView;
+ wxMenuItem* m_menuItemFit;
+ wxMenuItem* m_menuItemSeparator_2;
+ wxMenuItem* m_menuItemShowGrid;
+ wxMenuItem* m_menuItemShowLabel;
+ wxMenuItem* m_menuItemShowCoordinates;
+ wxMenuItem* m_menuItemDarkTheme;
+ wxTreeCtrl* m_treeCtrl;
+ wxPropertyGridManager* m_pgMgr;
+ wxPGProperty* m_pgPropLineProp;
+ wxPGProperty* m_pgPropDraw;
+ wxPGProperty* m_pgProplineThick;
+ wxPGProperty* m_pgProplineType;
+ wxPGProperty* m_pgProplineAxis;
+ wxPGProperty* m_pgPropChartProp;
+ wxPGProperty* m_pgPropChartTitle;
+ wxPGProperty* m_pgPropXLabel;
+ wxPGProperty* m_pgPropYLabel;
+ wxPGProperty* m_pgPropMargins;
+ wxPGProperty* m_pgPropMarginsUp;
+ wxPGProperty* m_pgPropMarginsBot;
+ wxPGProperty* m_pgPropMarginsLeft;
+ wxPGProperty* m_pgPropMarginsRight;
+ wxPGProperty* m_pgPropAxisLimit;
+ wxPGProperty* m_pgPropXMin;
+ wxPGProperty* m_pgPropXMax;
+ wxPGProperty* m_pgPropYMin;
+ 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 OnTreeItemActivated(wxTreeEvent& event) { event.Skip(); }
+ virtual void OnTreeItemSelectionChanged(wxTreeEvent& event) { event.Skip(); }
+ virtual void OnPropertyGridChange(wxPropertyGridEvent& event) { event.Skip(); }
+
+public:
+ wxMenuBar* GetMenuBar() { return m_menuBar; }
+ wxTreeCtrl* GetTreeCtrl() { return m_treeCtrl; }
+ wxPropertyGridManager* GetPgMgr() { return m_pgMgr; }
+ ChartViewBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Chart view"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_FRAME_STYLE);
+ virtual ~ChartViewBase();
+};
+
+#endif
diff --git a/Project/ChartViewBitmaps.cpp b/Project/ChartViewBitmaps.cpp
new file mode 100644
index 0000000..274e17e
--- /dev/null
+++ b/Project/ChartViewBitmaps.cpp
@@ -0,0 +1,49 @@
+//
+// This file was automatically generated by wxrc, do not edit by hand.
+//
+
+#include <wx/wxprec.h>
+
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
+
+#include <wx/filesys.h>
+#include <wx/fs_mem.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/xrc/xh_all.h>
+
+#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)
+#else
+ #define XRC_ADD_FILE(name, data, size, mime) \
+ wxMemoryFSHandler::AddFile(name, data, size)
+#endif
+
+static size_t xml_res_size_0 = 137;
+static unsigned char xml_res_file_0[] = {
+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,
+47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103,
+47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101,
+114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45,
+45,62,10,60,47,114,101,115,111,117,114,99,101,62,10};
+
+void wxCE3EBInitBitmapResources()
+{
+
+ // Check for memory FS. If not present, load the handler:
+ {
+ wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one"));
+ wxFileSystem fsys;
+ wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file"));
+ wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file"));
+ if (f) delete f;
+ else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);
+ }
+
+ XRC_ADD_FILE(wxT("XRC_resource/ChartViewBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ChartViewBitmaps.xrc"), xml_res_file_0, xml_res_size_0, wxT("text/xml"));
+ wxXmlResource::Get()->Load(wxT("memory:XRC_resource/ChartViewBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_ChartViewBitmaps.xrc"));
+}
diff --git a/Project/ControlEditor.cpp b/Project/ControlEditor.cpp
index e457d0f..a9d0213 100644
--- a/Project/ControlEditor.cpp
+++ b/Project/ControlEditor.cpp
@@ -13,6 +13,9 @@
#include "Constant.h"
#include "Gain.h"
+#include "ChartView.h"
+#include "ElementPlotData.h"
+
ControlElementButton::ControlElementButton(wxWindow* parent, wxString label, wxImage image, wxWindowID id)
: wxWindow(parent, id)
{
@@ -611,6 +614,37 @@ void ControlEditor::OnKeyDown(wxKeyEvent& event)
{
RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT);
} break;
+ case 'L':
+ {
+ //tests
+ if(event.ControlDown() && event.ShiftDown()) {
+ std::vector<double> time, sinC, cosC, tgC;
+ for(int i=0; i<360; ++i) {
+ time.push_back(i);
+ sinC.push_back(std::sin(wxDegToRad(i)));
+ cosC.push_back(std::cos(wxDegToRad(i)));
+ tgC.push_back(std::tan(wxDegToRad(i)));
+ }
+ std::vector<ElementPlotData> epdList;
+
+ ElementPlotData curve1Data(_("Func. polinomiais 1"), ElementPlotData::CT_BUS);
+ curve1Data.AddData(sinC, _("seno"));
+ epdList.push_back(curve1Data);
+
+ ElementPlotData curve2Data(_("Func. polinomiais 2"), ElementPlotData::CT_BUS);
+ curve2Data.AddData(tgC, _("tangente"));
+ epdList.push_back(curve2Data);
+
+ ElementPlotData curve3Data(_("Func. polinomiais 3"), ElementPlotData::CT_SYNC_GENERATOR);
+ curve3Data.AddData(sinC, _("seno"));
+ curve3Data.AddData(cosC, _("cosseno"));
+ curve3Data.AddData(tgC, _("tangente"));
+ epdList.push_back(curve3Data);
+
+ ChartView* cView = new ChartView(this, epdList, time);
+ cView->Show();
+ }
+ }
}
}
}
diff --git a/Project/ControlEditor.h b/Project/ControlEditor.h
index eb1bc4f..232ebd8 100644
--- a/Project/ControlEditor.h
+++ b/Project/ControlEditor.h
@@ -25,6 +25,9 @@ class Exponential;
class Constant;
class Gain;
+class ChartView;
+class ElementDataObject;
+
enum ControlElementButtonID { ID_IO = 0, ID_TF, ID_SUM, ID_CONST, ID_LIMITER, ID_GAIN, ID_MULT, ID_EXP, ID_RATELIM };
class ControlElementButton : public wxWindow
diff --git a/Project/ControlEditor.wxcp b/Project/ControlEditor.wxcp
index 347a1a3..7952614 100644
--- a/Project/ControlEditor.wxcp
+++ b/Project/ControlEditor.wxcp
@@ -128,7 +128,14 @@
"m_label": "Bitmap File (256x256):",
"m_path": "data/images/ctrlEditor256.png"
}],
- "m_events": [],
+ "m_events": [{
+ "m_eventName": "wxEVT_KEY_DOWN",
+ "m_eventClass": "wxKeyEvent",
+ "m_eventHandler": "wxKeyEventHandler",
+ "m_functionNameAndSignature": "OnKeyDown(wxKeyEvent& event)",
+ "m_description": "Process a wxEVT_KEY_DOWN event (any key has been pressed)",
+ "m_noBody": false
+ }],
"m_children": [{
"m_type": 4461,
"proportion": 0,
diff --git a/Project/ControlEditorBase.cpp b/Project/ControlEditorBase.cpp
index 1156e7b..6489c0f 100644
--- a/Project/ControlEditorBase.cpp
+++ b/Project/ControlEditorBase.cpp
@@ -136,6 +136,7 @@ ControlEditorBase::ControlEditorBase(wxWindow* parent, wxWindowID id, const wxSt
}
#endif
// Connect events
+ this->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(ControlEditorBase::OnKeyDown), NULL, this);
this->Connect(ID_RIBBON_IMPORT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ControlEditorBase::OnImportClick), NULL, this);
this->Connect(ID_RIBBON_EXPORT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ControlEditorBase::OnExportClick), NULL, this);
m_glCanvas->Connect(wxEVT_PAINT, wxPaintEventHandler(ControlEditorBase::OnPaint), NULL, this);
@@ -153,6 +154,7 @@ ControlEditorBase::ControlEditorBase(wxWindow* parent, wxWindowID id, const wxSt
ControlEditorBase::~ControlEditorBase()
{
+ this->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(ControlEditorBase::OnKeyDown), NULL, this);
this->Disconnect(ID_RIBBON_IMPORT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ControlEditorBase::OnImportClick), NULL, this);
this->Disconnect(ID_RIBBON_EXPORT, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(ControlEditorBase::OnExportClick), NULL, this);
m_glCanvas->Disconnect(wxEVT_PAINT, wxPaintEventHandler(ControlEditorBase::OnPaint), NULL, this);
diff --git a/Project/ControlEditorBase.h b/Project/ControlEditorBase.h
index ac89b32..c23aa64 100644
--- a/Project/ControlEditorBase.h
+++ b/Project/ControlEditorBase.h
@@ -53,6 +53,7 @@ protected:
wxStatusBar* m_statusBarMain;
protected:
+ virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); }
virtual void OnImportClick(wxCommandEvent& event) { event.Skip(); }
virtual void OnExportClick(wxCommandEvent& event) { event.Skip(); }
virtual void OnPaint(wxPaintEvent& event) { event.Skip(); }
@@ -64,7 +65,6 @@ protected:
virtual void OnMouseMotion(wxMouseEvent& event) { event.Skip(); }
virtual void OnScroll(wxMouseEvent& event) { event.Skip(); }
virtual void OnIdle(wxIdleEvent& event) { event.Skip(); }
- virtual void OnKeyDown(wxKeyEvent& event) { event.Skip(); }
public:
wxToolBar* GetToolbarMain() { return m_toolbarMain; }
diff --git a/Project/ElementPlotData.cpp b/Project/ElementPlotData.cpp
new file mode 100644
index 0000000..0f406a8
--- /dev/null
+++ b/Project/ElementPlotData.cpp
@@ -0,0 +1,22 @@
+#include "ElementPlotData.h"
+
+ElementPlotData::ElementPlotData(wxString name, CurveType curveType)
+{
+ m_name = name;
+ m_curveType = curveType;
+}
+
+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..1434664
--- /dev/null
+++ b/Project/ElementPlotData.h
@@ -0,0 +1,84 @@
+#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_BUS = 0,
+ CT_SYNC_GENERATOR,
+ CT_SYNC_COMPENSATOR,
+ CT_TRANSFORMER,
+ CT_LINE,
+ CT_IND_MOTOR,
+ CT_SHUNT_INDUCTOR,
+ CT_SHUNT_CAPACITOR,
+ CT_LOAD,
+ NUM_ELEMENTS,
+ CT_TIME
+ };
+ ElementPlotData() {};
+ ElementPlotData(wxString name, CurveType curveType);
+ ~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 f2b403d..c43d7d9 100644
--- a/Project/Project.mk
+++ b/Project/Project.mk
@@ -13,7 +13,7 @@ CurrentFileName :=
CurrentFilePath :=
CurrentFileFullPath :=
User :=NDSE-69
-Date :=24/04/2017
+Date :=03/05/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,13 +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)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBase.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)
@@ -127,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
@@ -183,6 +192,14 @@ $(IntermediateDirectory)/Camera.cpp$(DependSuffix): Camera.cpp
$(IntermediateDirectory)/Camera.cpp$(PreprocessSuffix): Camera.cpp
$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/Camera.cpp$(PreprocessSuffix) Camera.cpp
+$(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix): ChartView.cpp $(IntermediateDirectory)/ChartView.cpp$(DependSuffix)
+ $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ChartView.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix) $(IncludePath)
+$(IntermediateDirectory)/ChartView.cpp$(DependSuffix): ChartView.cpp
+ @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/ChartView.cpp$(DependSuffix) -MM ChartView.cpp
+
+$(IntermediateDirectory)/ChartView.cpp$(PreprocessSuffix): ChartView.cpp
+ $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ChartView.cpp$(PreprocessSuffix) ChartView.cpp
+
$(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix): MainFrameBitmaps.cpp $(IntermediateDirectory)/MainFrameBitmaps.cpp$(DependSuffix)
$(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/MainFrameBitmaps.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IncludePath)
$(IntermediateDirectory)/MainFrameBitmaps.cpp$(DependSuffix): MainFrameBitmaps.cpp
@@ -223,6 +240,14 @@ $(IntermediateDirectory)/ControlEditorBitmaps.cpp$(DependSuffix): ControlEditorB
$(IntermediateDirectory)/ControlEditorBitmaps.cpp$(PreprocessSuffix): ControlEditorBitmaps.cpp
$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ControlEditorBitmaps.cpp$(PreprocessSuffix) ControlEditorBitmaps.cpp
+$(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix): ChartViewBitmaps.cpp $(IntermediateDirectory)/ChartViewBitmaps.cpp$(DependSuffix)
+ $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ChartViewBitmaps.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix) $(IncludePath)
+$(IntermediateDirectory)/ChartViewBitmaps.cpp$(DependSuffix): ChartViewBitmaps.cpp
+ @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/ChartViewBitmaps.cpp$(DependSuffix) -MM ChartViewBitmaps.cpp
+
+$(IntermediateDirectory)/ChartViewBitmaps.cpp$(PreprocessSuffix): ChartViewBitmaps.cpp
+ $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ChartViewBitmaps.cpp$(PreprocessSuffix) ChartViewBitmaps.cpp
+
$(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix): MainFrameBase.cpp $(IntermediateDirectory)/MainFrameBase.cpp$(DependSuffix)
$(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/MainFrameBase.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IncludePath)
$(IntermediateDirectory)/MainFrameBase.cpp$(DependSuffix): MainFrameBase.cpp
@@ -255,6 +280,14 @@ $(IntermediateDirectory)/ControlEditorBase.cpp$(DependSuffix): ControlEditorBase
$(IntermediateDirectory)/ControlEditorBase.cpp$(PreprocessSuffix): ControlEditorBase.cpp
$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ControlEditorBase.cpp$(PreprocessSuffix) ControlEditorBase.cpp
+$(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix): ChartViewBase.cpp $(IntermediateDirectory)/ChartViewBase.cpp$(DependSuffix)
+ $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ChartViewBase.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) $(IncludePath)
+$(IntermediateDirectory)/ChartViewBase.cpp$(DependSuffix): ChartViewBase.cpp
+ @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/ChartViewBase.cpp$(DependSuffix) -MM ChartViewBase.cpp
+
+$(IntermediateDirectory)/ChartViewBase.cpp$(PreprocessSuffix): ChartViewBase.cpp
+ $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ChartViewBase.cpp$(PreprocessSuffix) ChartViewBase.cpp
+
$(IntermediateDirectory)/Bus.cpp$(ObjectSuffix): Bus.cpp $(IntermediateDirectory)/Bus.cpp$(DependSuffix)
$(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/Bus.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IncludePath)
$(IntermediateDirectory)/Bus.cpp$(DependSuffix): Bus.cpp
diff --git a/Project/Project.project b/Project/Project.project
index ac88084..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"/>
@@ -88,6 +89,7 @@
<File Name="GainForm.cpp"/>
<File Name="IOControlForm.cpp"/>
</VirtualDirectory>
+ <File Name="ChartView.cpp"/>
</VirtualDirectory>
<File Name="main.cpp"/>
</VirtualDirectory>
@@ -139,6 +141,7 @@
<File Name="IOControl.h"/>
<File Name="ControlElementContainer.h"/>
</VirtualDirectory>
+ <File Name="ElementPlotData.h"/>
</VirtualDirectory>
<VirtualDirectory Name="view">
<File Name="ArtMetro.h"/>
@@ -177,6 +180,7 @@
<File Name="GainForm.h"/>
<File Name="IOControlForm.h"/>
</VirtualDirectory>
+ <File Name="ChartView.h"/>
</VirtualDirectory>
</VirtualDirectory>
<VirtualDirectory Name="resources">
@@ -189,6 +193,7 @@
<File Name="BusFormBitmaps.cpp"/>
<File Name="ElementFormBitmaps.cpp"/>
<File Name="ControlEditorBitmaps.cpp"/>
+ <File Name="ChartViewBitmaps.cpp"/>
</VirtualDirectory>
<VirtualDirectory Name="base">
<File Name="MainFrameBase.h"/>
@@ -199,6 +204,8 @@
<File Name="ElementForm.cpp"/>
<File Name="ControlEditorBase.h"/>
<File Name="ControlEditorBase.cpp"/>
+ <File Name="ChartViewBase.h"/>
+ <File Name="ChartViewBase.cpp"/>
</VirtualDirectory>
<File Name="MainFrame.wxcp"/>
<File Name="Workspace.wxcp"/>
diff --git a/Project/Project.txt b/Project/Project.txt
index 806024e..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/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.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
diff --git a/Project/data/lang/pt_BR/pt_BR.mo b/Project/data/lang/pt_BR/pt_BR.mo
index bbe9337..63cc044 100644
--- a/Project/data/lang/pt_BR/pt_BR.mo
+++ b/Project/data/lang/pt_BR/pt_BR.mo
Binary files differ
diff --git a/Project/data/lang/pt_BR/pt_BR.po b/Project/data/lang/pt_BR/pt_BR.po
index 749b4c1..37d8d12 100644
--- a/Project/data/lang/pt_BR/pt_BR.po
+++ b/Project/data/lang/pt_BR/pt_BR.po
@@ -1,19 +1,21 @@
msgid ""
msgstr ""
"Project-Id-Version: PSP-UFU pt_BR 0.0.1\n"
-"POT-Creation-Date: 2017-01-20 20:38-0200\n"
-"PO-Revision-Date: 2017-01-20 23:15-0200\n"
+"POT-Creation-Date: 2017-04-25 16:38-0300\n"
+"PO-Revision-Date: 2017-04-25 16:41-0300\n"
"Last-Translator: \n"
"Language-Team: Thales Lima Oliveira <thaleslima.ufu@gmail.com>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.1\n"
"X-Poedit-Basepath: ../../..\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPathExcluded-0: wxMathPlot\n"
+"X-Poedit-SearchPathExcluded-1: rapidXML\n"
#: Bus.cpp:175
msgid "Edit bus"
@@ -35,7 +37,7 @@ msgstr ""
#: Bus.cpp:206 Bus.cpp:212 Bus.cpp:213 Bus.cpp:214 Bus.cpp:216 Bus.cpp:217
#: Bus.cpp:218 Bus.cpp:221 Capacitor.cpp:190 IndMotor.cpp:99 IndMotor.cpp:118
-#: Inductor.cpp:184 Line.cpp:530 Line.cpp:532 Line.cpp:534 Line.cpp:536
+#: Inductor.cpp:184 Line.cpp:495 Line.cpp:497 Line.cpp:499 Line.cpp:501
#: Load.cpp:205 Load.cpp:222 SyncGenerator.cpp:158 SyncGenerator.cpp:177
#: SyncMotor.cpp:124 SyncMotor.cpp:143 Transformer.cpp:434 Transformer.cpp:436
#: Transformer.cpp:438 Transformer.cpp:440
@@ -187,86 +189,274 @@ msgstr ""
msgid " MVAr"
msgstr ""
-#: ControlEditor.cpp:15
+#: ChartView.cpp:14
+msgid "Color"
+msgstr ""
+
+#: ChartViewBase.cpp:30 MainFrameBase.cpp:72 MainFrameBase.cpp:73
+msgid "File"
+msgstr "Arquivo"
+
+#: ChartViewBase.cpp:32
+msgid "Save chart as image"
+msgstr ""
+
+#: ChartViewBase.cpp:35
+#, fuzzy
+#| msgid "Clipboard"
+msgid "Send to clipboard"
+msgstr "Área de transferência"
+
+#: ChartViewBase.cpp:40 MainFrameBase.cpp:88
+msgid "Exit"
+msgstr "Sair"
+
+#: ChartViewBase.cpp:44
+msgid "View"
+msgstr ""
+
+#: ChartViewBase.cpp:46 MainFrameBase.cpp:146
+msgid "Fit"
+msgstr "Encaixar"
+
+#: ChartViewBase.cpp:51
+msgid "Show grid"
+msgstr ""
+
+#: ChartViewBase.cpp:54
+msgid "Show label"
+msgstr ""
+
+#: ChartViewBase.cpp:57
+msgid "Show coordinates"
+msgstr ""
+
+#: ChartViewBase.cpp:60
+msgid "Dark theme"
+msgstr ""
+
+#: ChartViewBase.cpp:83
+msgid "Line properties"
+msgstr ""
+
+#: ChartViewBase.cpp:86
+msgid "Draw"
+msgstr ""
+
+#: ChartViewBase.cpp:90
+msgid "Thickness"
+msgstr ""
+
+#: ChartViewBase.cpp:96
+msgid "Solid"
+msgstr ""
+
+#: ChartViewBase.cpp:97
+msgid "Dot"
+msgstr ""
+
+#: ChartViewBase.cpp:98
+msgid "Dash"
+msgstr ""
+
+#: ChartViewBase.cpp:99
+msgid "Dot and dash"
+msgstr ""
+
+#: ChartViewBase.cpp:100
+msgid "Cross"
+msgstr ""
+
+#: ChartViewBase.cpp:101
+msgid "Diagonal cross"
+msgstr ""
+
+#: ChartViewBase.cpp:102 ElementForm.cpp:2329 SwitchingForm.cpp:6
+#: SwitchingForm.cpp:15
+msgid "Type"
+msgstr ""
+
+#: ChartViewBase.cpp:108
+msgid "Y"
+msgstr ""
+
+#: ChartViewBase.cpp:109
+msgid "X"
+msgstr ""
+
+#: ChartViewBase.cpp:110
+msgid "Axis"
+msgstr ""
+
+#: ChartViewBase.cpp:114
+msgid "Chart properties"
+msgstr ""
+
+#: ChartViewBase.cpp:117
+msgid "Chart title"
+msgstr ""
+
+#: ChartViewBase.cpp:121
+msgid "X axis label"
+msgstr ""
+
+#: ChartViewBase.cpp:125
+msgid "Y axis label"
+msgstr ""
+
+#: ChartViewBase.cpp:129
+msgid "Margins"
+msgstr ""
+
+#: ChartViewBase.cpp:132 ElementForm.cpp:2348
+msgid "Up"
+msgstr ""
+
+#: ChartViewBase.cpp:135
+msgid "Botton"
+msgstr ""
+
+#: ChartViewBase.cpp:138
+msgid "Left"
+msgstr ""
+
+#: ChartViewBase.cpp:141
+msgid "Right"
+msgstr ""
+
+#: ChartViewBase.cpp:144
+msgid "Axis limit"
+msgstr ""
+
+#: ChartViewBase.cpp:147
+msgid "X min"
+msgstr ""
+
+#: ChartViewBase.cpp:150
+msgid "X max"
+msgstr ""
+
+#: ChartViewBase.cpp:153
+msgid "Y min"
+msgstr ""
+
+#: ChartViewBase.cpp:156
+msgid "Y max"
+msgstr ""
+
+#: ChartViewBase.h:87
+#, fuzzy
+#| msgid "Charts"
+msgid "Chart view"
+msgstr "Gráficos"
+
+#: ConstantForm.cpp:22
+msgid "Value entered incorrectly in the field \"Constant value\"."
+msgstr ""
+
+#: ControlEditor.cpp:128
msgid "In/Out"
msgstr ""
-#: ControlEditor.cpp:21
+#: ControlEditor.cpp:134
msgid "Transfer fcn"
msgstr "Func Transferência"
-#: ControlEditor.cpp:25
+#: ControlEditor.cpp:138 ElementForm.h:826
msgid "Sum"
msgstr ""
-#: ControlEditor.cpp:31
+#: ControlEditor.cpp:144 ElementForm.h:944
msgid "Constant"
msgstr ""
-#: ControlEditor.cpp:36
+#: ControlEditor.cpp:149 ElementForm.h:856
msgid "Limiter"
msgstr ""
-#: ControlEditor.cpp:41
+#: ControlEditor.cpp:154 ElementForm.h:970
msgid "Gain"
msgstr ""
-#: ControlEditor.cpp:46
+#: ControlEditor.cpp:159
msgid "Multiplier"
msgstr ""
-#: ControlEditor.cpp:50
-msgid "Saturation"
+#: ControlEditor.cpp:163 ElementForm.h:918
+msgid "Exponential"
msgstr ""
-#: ControlEditor.cpp:56
+#: ControlEditor.cpp:169 ElementForm.h:886
msgid "Rate limiter"
msgstr ""
-#: ControlEditorBase.cpp:29 MainFrameBase.cpp:82
+#: ControlEditor.cpp:724
+msgid "Save CTL file"
+msgstr ""
+
+#: ControlEditor.cpp:735
+msgid "Open CTL file"
+msgstr ""
+
+#: ControlEditor.cpp:743 MainFrame.cpp:231
+msgid "It was not possible to open the selected file."
+msgstr ""
+
+#: ControlEditor.cpp:743 Element.cpp:273 Element.cpp:287 Line.cpp:149
+#: Line.cpp:375 MainFrame.cpp:231 SumForm.cpp:41 SumForm.cpp:56
+#: TextForm.cpp:1207 Workspace.cpp:1098 Workspace.cpp:1153 Workspace.cpp:1261
+#: Workspace.cpp:1365 Workspace.cpp:1387
+msgid "Error"
+msgstr ""
+
+#: ControlEditorBase.cpp:63 MainFrameBase.cpp:82
msgid "New"
msgstr "Novo"
-#: ControlEditorBase.cpp:31
+#: ControlEditorBase.cpp:65
msgid "Import"
msgstr ""
-#: ControlEditorBase.cpp:33
+#: ControlEditorBase.cpp:67
msgid "Export"
msgstr ""
-#: ControlEditorBase.cpp:37 MainFrameBase.cpp:123
+#: ControlEditorBase.cpp:71 MainFrameBase.cpp:123
msgid "Copy"
msgstr "Copiar"
-#: ControlEditorBase.cpp:39 MainFrameBase.cpp:125
+#: ControlEditorBase.cpp:73 MainFrameBase.cpp:125
msgid "Paste"
msgstr "Colar"
-#: ControlEditorBase.cpp:41 MainFrameBase.cpp:127
+#: ControlEditorBase.cpp:75 MainFrameBase.cpp:127
msgid "Undo"
msgstr "Desfazer"
-#: ControlEditorBase.cpp:43 MainFrameBase.cpp:129
+#: ControlEditorBase.cpp:77 MainFrameBase.cpp:129
msgid "Redo"
msgstr "Refazer"
-#: ControlEditorBase.cpp:47 MainFrameBase.cpp:140
+#: ControlEditorBase.cpp:81 MainFrameBase.cpp:140
msgid "Drag"
msgstr "Arrastar"
-#: ControlEditorBase.cpp:49 MainFrameBase.cpp:142
+#: ControlEditorBase.cpp:83 MainFrameBase.cpp:142
msgid "Move"
msgstr "Mover"
-#: ControlEditorBase.cpp:51 Element.cpp:234 Line.cpp:317 MainFrameBase.cpp:144
+#: ControlEditorBase.cpp:85 Element.cpp:234 Line.cpp:282 MainFrameBase.cpp:144
msgid "Delete"
msgstr "Excluir"
-#: ControlEditorBase.cpp:62
+#: ControlEditorBase.cpp:96
msgid "Control elements"
msgstr ""
+#: ControlEditorBase.h:76
+msgid "Control editor"
+msgstr ""
+
#: Element.cpp:226 MainFrameBase.cpp:148
msgid "Rotate clockwise"
msgstr ""
@@ -275,15 +465,12 @@ msgstr ""
msgid "Rotate counter-clockwise"
msgstr ""
-#: Element.cpp:273 Element.cpp:287 Line.cpp:149 Line.cpp:410 MainFrame.cpp:231
-#: TextForm.cpp:1207 Workspace.cpp:1146 Workspace.cpp:1201 Workspace.cpp:1309
-#: Workspace.cpp:1413 Workspace.cpp:1435
-msgid "Error"
-msgstr ""
-
#: ElementForm.cpp:35 ElementForm.cpp:404 ElementForm.cpp:1302
#: ElementForm.cpp:1615 ElementForm.cpp:2015 ElementForm.cpp:2184
-#: ElementForm.cpp:2441 ElementForm.cpp:2598
+#: ElementForm.cpp:2441 ElementForm.cpp:2598 ElementForm.cpp:2808
+#: ElementForm.cpp:2909 ElementForm.cpp:2998 ElementForm.cpp:3099
+#: ElementForm.cpp:3200 ElementForm.cpp:3305 ElementForm.cpp:3394
+#: ElementForm.cpp:3483
msgid "General"
msgstr ""
@@ -368,14 +555,18 @@ msgstr ""
#: ElementForm.cpp:328 ElementForm.cpp:731 ElementForm.cpp:1235
#: ElementForm.cpp:1547 ElementForm.cpp:1947 ElementForm.cpp:2116
#: ElementForm.cpp:2244 ElementForm.cpp:2372 ElementForm.cpp:2530
-#: ElementForm.cpp:2728
+#: ElementForm.cpp:2728 ElementForm.cpp:2843 ElementForm.cpp:2932
+#: ElementForm.cpp:3033 ElementForm.cpp:3134 ElementForm.cpp:3239
+#: ElementForm.cpp:3328 ElementForm.cpp:3417 ElementForm.cpp:3514
msgid "OK"
msgstr ""
#: ElementForm.cpp:332 ElementForm.cpp:735 ElementForm.cpp:1239
#: ElementForm.cpp:1551 ElementForm.cpp:1951 ElementForm.cpp:2120
#: ElementForm.cpp:2248 ElementForm.cpp:2376 ElementForm.cpp:2534
-#: ElementForm.cpp:2732
+#: ElementForm.cpp:2732 ElementForm.cpp:2847 ElementForm.cpp:2936
+#: ElementForm.cpp:3037 ElementForm.cpp:3138 ElementForm.cpp:3243
+#: ElementForm.cpp:3332 ElementForm.cpp:3421 ElementForm.cpp:3518
msgid "Cancel"
msgstr ""
@@ -384,13 +575,14 @@ msgid "Rated power"
msgstr ""
#: ElementForm.cpp:459 ElementForm.cpp:2040 ElementForm.cpp:2466
-#: TextForm.cpp:866 TextForm.cpp:897 TextForm.cpp:919 TextForm.cpp:927
+#: IOControlForm.cpp:23 TextForm.cpp:866 TextForm.cpp:897 TextForm.cpp:919
+#: TextForm.cpp:927
msgid "Active power"
msgstr ""
#: ElementForm.cpp:488 ElementForm.cpp:2069 ElementForm.cpp:2209
-#: ElementForm.cpp:2495 TextForm.cpp:867 TextForm.cpp:898 TextForm.cpp:905
-#: TextForm.cpp:912 TextForm.cpp:920 TextForm.cpp:928
+#: ElementForm.cpp:2495 IOControlForm.cpp:28 TextForm.cpp:867 TextForm.cpp:898
+#: TextForm.cpp:905 TextForm.cpp:912 TextForm.cpp:920 TextForm.cpp:928
msgid "Reactive power"
msgstr ""
@@ -652,10 +844,6 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: ElementForm.cpp:2329 SwitchingForm.cpp:6 SwitchingForm.cpp:15
-msgid "Type"
-msgstr ""
-
#: ElementForm.cpp:2332 SwitchingForm.cpp:7 SwitchingForm.cpp:16
msgid "Time (s)"
msgstr ""
@@ -664,10 +852,6 @@ msgstr ""
msgid "Add"
msgstr ""
-#: ElementForm.cpp:2348
-msgid "Up"
-msgstr ""
-
#: ElementForm.cpp:2352
msgid "Down"
msgstr ""
@@ -708,6 +892,106 @@ msgstr ""
msgid "Preview:"
msgstr ""
+#: ElementForm.cpp:2813
+msgid "Numerator parameters"
+msgstr ""
+
+#: ElementForm.cpp:2825
+msgid "Denominator parameters"
+msgstr ""
+
+#: ElementForm.cpp:2914
+msgid "Signs"
+msgstr ""
+
+#: ElementForm.cpp:3003 ElementForm.cpp:3104
+msgid "Upper limit"
+msgstr ""
+
+#: ElementForm.cpp:3015 ElementForm.cpp:3116
+msgid "Lower limit"
+msgstr ""
+
+#: ElementForm.cpp:3205
+msgid "y = A.eB.x"
+msgstr ""
+
+#: ElementForm.cpp:3209
+msgid "A value"
+msgstr ""
+
+#: ElementForm.cpp:3221
+msgid "B value"
+msgstr ""
+
+#: ElementForm.cpp:3310
+msgid "Constant value"
+msgstr ""
+
+#: ElementForm.cpp:3399
+msgid "Gain value"
+msgstr ""
+
+#: ElementForm.cpp:3488
+msgid "Input"
+msgstr ""
+
+#: ElementForm.cpp:3498
+msgid "Output"
+msgstr ""
+
+#: ElementForm.h:143
+msgid "Bus"
+msgstr ""
+
+#: ElementForm.h:242 SyncGenerator.cpp:52
+msgid "Generator"
+msgstr ""
+
+#: ElementForm.h:369
+msgid "Generator: Stability"
+msgstr ""
+
+#: ElementForm.h:448
+msgid "Line"
+msgstr ""
+
+#: ElementForm.h:547
+msgid "Transformer"
+msgstr ""
+
+#: ElementForm.h:592
+msgid "Load"
+msgstr ""
+
+#: ElementForm.h:627
+msgid "Reactive shunt element"
+msgstr ""
+
+#: ElementForm.h:709
+msgid "Motor"
+msgstr ""
+
+#: ElementForm.h:770 Text.h:87
+msgid "Text"
+msgstr ""
+
+#: ElementForm.h:800
+msgid "Transfer function"
+msgstr "Função transferência"
+
+#: ElementForm.h:1002
+msgid "Input / Output"
+msgstr ""
+
+#: ExponentialForm.cpp:37
+msgid "Value entered incorrectly in the field \"A value\"."
+msgstr ""
+
+#: ExponentialForm.cpp:40
+msgid "Value entered incorrectly in the field \"B value\"."
+msgstr ""
+
#: Fault.cpp:16
msgid "There is no buses in the system."
msgstr ""
@@ -728,6 +1012,10 @@ msgstr ""
msgid "There is no fault in the system."
msgstr ""
+#: GainForm.cpp:22
+msgid "Value entered incorrectly in the field \"Gain value\"."
+msgstr ""
+
#: GeneratorStabForm.cpp:54
msgid "Synchronous generator: Switching"
msgstr ""
@@ -810,6 +1098,46 @@ msgid ""
"constant\"."
msgstr ""
+#: IOControl.cpp:142
+msgid "Vt"
+msgstr ""
+
+#: IOControl.cpp:150
+msgid "Pe"
+msgstr ""
+
+#: IOControl.cpp:154
+msgid "Qe"
+msgstr ""
+
+#: IOControl.cpp:158
+msgid "Vf"
+msgstr ""
+
+#: IOControl.cpp:162
+msgid "Pm"
+msgstr ""
+
+#: IOControlForm.cpp:13
+#, fuzzy
+#| msgid "Reset voltages"
+msgid "Terminal voltage"
+msgstr "Reiniciar tensões"
+
+#: IOControlForm.cpp:18
+msgid "Velocity"
+msgstr ""
+
+#: IOControlForm.cpp:33
+#, fuzzy
+#| msgid "Reset voltages"
+msgid "Field voltage"
+msgstr "Reiniciar tensões"
+
+#: IOControlForm.cpp:38
+msgid "Mechanical power"
+msgstr ""
+
#: IndMotor.cpp:27
msgid "Edit induction motor"
msgstr ""
@@ -851,31 +1179,39 @@ msgstr ""
msgid "Inductor"
msgstr ""
-#: Line.cpp:147 Line.cpp:408
+#: LimiterForm.cpp:25 RateLimiterForm.cpp:20
+msgid "Value entered incorrectly in the field \"Upper limit\"."
+msgstr ""
+
+#: LimiterForm.cpp:28 RateLimiterForm.cpp:23
+msgid "Value entered incorrectly in the field \"Lower limit\"."
+msgstr ""
+
+#: Line.cpp:147 Line.cpp:373
msgid ""
"Unable to connect two buses with different nominal voltages.\n"
"Use a transformer or edit the bus properties."
msgstr ""
-#: Line.cpp:307
+#: Line.cpp:272
msgid "Edit line"
msgstr ""
-#: Line.cpp:309
+#: Line.cpp:274
msgid "Insert node"
msgstr ""
-#: Line.cpp:313
+#: Line.cpp:278
msgid "Remove node"
msgstr ""
-#: Line.cpp:529 Line.cpp:533 Transformer.cpp:433 Transformer.cpp:437
+#: Line.cpp:494 Line.cpp:498 Transformer.cpp:433 Transformer.cpp:437
msgid ""
"\n"
"P"
msgstr ""
-#: Line.cpp:531 Line.cpp:535 Transformer.cpp:435 Transformer.cpp:439
+#: Line.cpp:496 Line.cpp:500 Transformer.cpp:435 Transformer.cpp:439
msgid ""
"\n"
"Q"
@@ -1010,99 +1346,91 @@ msgstr ""
msgid "Open project"
msgstr ""
-#: MainFrame.cpp:231
-msgid "It was not possible to open the selected file."
-msgstr ""
-
#: MainFrame.cpp:265 MainFrame.cpp:286
msgid "Save PSP file"
msgstr ""
-#: MainFrame.cpp:314 Workspace.cpp:720
+#: MainFrame.cpp:314 Workspace.cpp:672
#, c-format
msgid "Bus %d"
msgstr "Barra %d"
-#: MainFrame.cpp:317 Workspace.cpp:724
+#: MainFrame.cpp:317 Workspace.cpp:676
msgid "Insert Bus: Click to insert, ESC to cancel."
msgstr ""
-#: MainFrame.cpp:321 Workspace.cpp:737
+#: MainFrame.cpp:321 Workspace.cpp:689
#, c-format
msgid "Line %d"
msgstr ""
-#: MainFrame.cpp:324 Workspace.cpp:741
+#: MainFrame.cpp:324 Workspace.cpp:693
msgid "Insert Line: Click on two buses, ESC to cancel."
msgstr ""
-#: MainFrame.cpp:329 Workspace.cpp:755
+#: MainFrame.cpp:329 Workspace.cpp:707
#, c-format
msgid "Transformer %d"
msgstr ""
-#: MainFrame.cpp:332 Workspace.cpp:759
+#: MainFrame.cpp:332 Workspace.cpp:711
msgid "Insert Transformer: Click on two buses, ESC to cancel."
msgstr ""
-#: MainFrame.cpp:337 Workspace.cpp:767
+#: MainFrame.cpp:337 Workspace.cpp:719
#, c-format
msgid "Generator %d"
msgstr "Gerador %d"
-#: MainFrame.cpp:340 Workspace.cpp:771
+#: MainFrame.cpp:340 Workspace.cpp:723
msgid "Insert Generator: Click on a buses, ESC to cancel."
msgstr ""
-#: MainFrame.cpp:344 Workspace.cpp:731
+#: MainFrame.cpp:344 Workspace.cpp:683
#, c-format
msgid "Load %d"
msgstr ""
-#: MainFrame.cpp:347 Workspace.cpp:735
+#: MainFrame.cpp:347 Workspace.cpp:687
msgid "Insert Load: Click on a buses, ESC to cancel."
msgstr ""
-#: MainFrame.cpp:352 Workspace.cpp:812
+#: MainFrame.cpp:352 Workspace.cpp:764
#, c-format
msgid "Capacitor %d"
msgstr ""
-#: MainFrame.cpp:355 Workspace.cpp:816
+#: MainFrame.cpp:355 Workspace.cpp:768
msgid "Insert Capacitor: Click on a buses, ESC to cancel."
msgstr ""
-#: MainFrame.cpp:360 Workspace.cpp:779
+#: MainFrame.cpp:360 Workspace.cpp:731
#, c-format
msgid "Inductor %d"
msgstr ""
-#: MainFrame.cpp:363 Workspace.cpp:783
+#: MainFrame.cpp:363 Workspace.cpp:735
msgid "Insert Inductor: Click on a buses, ESC to cancel."
msgstr ""
-#: MainFrame.cpp:368 Workspace.cpp:787
+#: MainFrame.cpp:368 Workspace.cpp:739
#, c-format
msgid "Induction motor %d"
msgstr ""
-#: MainFrame.cpp:371 Workspace.cpp:791
+#: MainFrame.cpp:371 Workspace.cpp:743
msgid "Insert Induction Motor: Click on a buses, ESC to cancel."
msgstr ""
-#: MainFrame.cpp:376 Workspace.cpp:800
+#: MainFrame.cpp:376 Workspace.cpp:752
#, c-format
msgid "Synchronous condenser %d"
msgstr ""
-#: MainFrame.cpp:379 Workspace.cpp:804
+#: MainFrame.cpp:379 Workspace.cpp:756
msgid "Insert Synchronous Condenser: Click on a buses, ESC to cancel."
msgstr ""
-#: MainFrameBase.cpp:72 MainFrameBase.cpp:73
-msgid "File"
-msgstr "Arquivo"
-
#: MainFrameBase.cpp:76 MainFrameBase.cpp:77 MainFrameBase.cpp:80
msgid "Projects"
msgstr "Projetos"
@@ -1128,10 +1456,6 @@ msgid "Opens a dialog to set the main settings of the program"
msgstr ""
#: MainFrameBase.cpp:88
-msgid "Exit"
-msgstr "Sair"
-
-#: MainFrameBase.cpp:88
msgid "Closes the application"
msgstr "Fecha a aplicação"
@@ -1232,10 +1556,6 @@ msgid "Removes all selected elements"
msgstr "Remove todos os elementos selecionados"
#: MainFrameBase.cpp:146
-msgid "Fit"
-msgstr "Encaixar"
-
-#: MainFrameBase.cpp:146
msgid "Applies the drag and zoom tools to show all elements in workspace"
msgstr ""
"Aplica as ferramentas de arrasto e ampliação para exibir todos os elementos "
@@ -1369,6 +1689,10 @@ msgstr ""
msgid "Opens a dialog to set the settings of the simulations"
msgstr ""
+#: MainFrameBase.h:141
+msgid "PSP-UFU"
+msgstr "PSP-UFU"
+
#: PowerFlow.cpp:24
msgid "No buses found on the system."
msgstr ""
@@ -1393,12 +1717,16 @@ msgstr ""
msgid "Inductor: Switching"
msgstr ""
-#: SyncGenerator.cpp:44
-msgid "Edit Generator"
+#: SumForm.cpp:41
+msgid "You must assign at least two signals."
msgstr ""
-#: SyncGenerator.cpp:52 ElementForm.h:242
-msgid "Generator"
+#: SumForm.cpp:56
+msgid "Value entered incorrectly in the field \"Signs\"."
+msgstr ""
+
+#: SyncGenerator.cpp:44
+msgid "Edit Generator"
msgstr ""
#: SyncMachineForm.cpp:344 SyncMachineForm.cpp:478
@@ -1541,6 +1869,14 @@ msgstr ""
msgid "There are blank fields."
msgstr ""
+#: TransferFunctionForm.cpp:55
+msgid "Value entered incorrectly in the field \"Numerator parameters\"."
+msgstr ""
+
+#: TransferFunctionForm.cpp:68
+msgid "Value entered incorrectly in the field \"Denominator parameters\"."
+msgstr ""
+
#: Transformer.cpp:256
msgid "Edit tranformer"
msgstr ""
@@ -1586,90 +1922,47 @@ msgstr ""
msgid "Value entered incorrectly in the field \"Secondary ground reactance\"."
msgstr ""
-#: Workspace.cpp:307
+#: Workspace.cpp:269
msgid "Do you want to change the rated voltage of the path?"
msgstr ""
-#: Workspace.cpp:308
+#: Workspace.cpp:270
msgid "Warning"
msgstr ""
-#: Workspace.cpp:703
+#: Workspace.cpp:655
msgid "Insert Text: Click to insert, ESC to cancel."
msgstr ""
-#: Workspace.cpp:843
+#: Workspace.cpp:795
msgid "MODE: DRAG"
msgstr ""
-#: Workspace.cpp:848
+#: Workspace.cpp:800
msgid "MODE: PASTE"
msgstr ""
-#: Workspace.cpp:855
+#: Workspace.cpp:807
msgid "MODE: INSERT"
msgstr ""
-#: Workspace.cpp:864
+#: Workspace.cpp:816
msgid "MODE: EDIT"
msgstr ""
-#: Workspace.cpp:868
+#: Workspace.cpp:820
#, c-format
msgid "ZOOM: %d%%"
msgstr ""
-#: Workspace.cpp:1201 Workspace.cpp:1309
+#: Workspace.cpp:1153 Workspace.cpp:1261
msgid "It was not possible to paste from clipboard."
msgstr ""
-#: Workspace.cpp:1317
+#: Workspace.cpp:1269
msgid "Click to paste."
msgstr ""
-#: ControlEditorBase.h:59
-msgid "Control editor"
-msgstr ""
-
-#: ElementForm.h:143
-msgid "Bus"
-msgstr ""
-
-#: ElementForm.h:369
-msgid "Generator: Stability"
-msgstr ""
-
-#: ElementForm.h:448
-msgid "Line"
-msgstr ""
-
-#: ElementForm.h:547
-msgid "Transformer"
-msgstr ""
-
-#: ElementForm.h:592
-msgid "Load"
-msgstr ""
-
-#: ElementForm.h:627
-msgid "Reactive shunt element"
-msgstr ""
-
-#: ElementForm.h:709
-msgid "Motor"
-msgstr ""
-
-#: ElementForm.h:770 Text.h:87
-msgid "Text"
-msgstr ""
-
-#: MainFrameBase.h:141
-msgid "PSP-UFU"
-msgstr "PSP-UFU"
-
-#~ msgid "Transfer function"
-#~ msgstr "Função transferência"
-
#~ msgid "Export Import"
#~ msgstr "Exportar Importar"
@@ -1691,9 +1984,6 @@ msgstr "PSP-UFU"
#~ msgid "Disable solution"
#~ msgstr "Desabilitar solução"
-#~ msgid "Reset voltages"
-#~ msgstr "Reiniciar tensões"
-
#~ msgid "Handling"
#~ msgstr "Manipulação"
diff --git a/Project/main.cpp b/Project/main.cpp
index 515b433..e24860d 100644
--- a/Project/main.cpp
+++ b/Project/main.cpp
@@ -25,8 +25,9 @@ public:
virtual bool OnInit()
{
- // Add png image handler
+ // Add image handlers
wxImage::AddHandler(new wxPNGHandler);
+ wxImage::AddHandler(new wxJPEGHandler);
wxLocale* locale = new wxLocale();
LoadCatalogs(locale);