From 9154f5ee02766121f7ac8dd756f2e73ae95e1afa Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Mon, 24 Apr 2017 20:11:39 -0300 Subject: Chart view implementation start --- Project/ChartView.cpp | 11 + Project/ChartView.h | 11 + Project/ChartView.wxcp | 995 ++++++++++++++++++++++++++++++++++++++++++- Project/ChartViewBase.cpp | 191 +++++++++ Project/ChartViewBase.h | 91 ++++ Project/ChartViewBitmaps.cpp | 49 +++ Project/Project.project | 5 + 7 files changed, 1343 insertions(+), 10 deletions(-) create mode 100644 Project/ChartView.cpp create mode 100644 Project/ChartView.h create mode 100644 Project/ChartViewBase.cpp create mode 100644 Project/ChartViewBase.h create mode 100644 Project/ChartViewBitmaps.cpp (limited to 'Project') diff --git a/Project/ChartView.cpp b/Project/ChartView.cpp new file mode 100644 index 0000000..a5fe183 --- /dev/null +++ b/Project/ChartView.cpp @@ -0,0 +1,11 @@ +#include "ChartView.h" + +ChartView::ChartView(wxWindow* parent) + : ChartViewBase(parent) +{ +} + +ChartView::~ChartView() +{ +} + diff --git a/Project/ChartView.h b/Project/ChartView.h new file mode 100644 index 0000000..191a264 --- /dev/null +++ b/Project/ChartView.h @@ -0,0 +1,11 @@ +#ifndef CHARTVIEW_H +#define CHARTVIEW_H +#include "ChartViewBase.h" + +class ChartView : public ChartViewBase +{ +public: + ChartView(wxWindow* parent); + virtual ~ChartView(); +}; +#endif // CHARTVIEW_H diff --git a/Project/ChartView.wxcp b/Project/ChartView.wxcp index 03dde90..7a36c9f 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, @@ -703,7 +703,7 @@ "m_events": [], "m_children": [{ "m_type": 4401, - "proportion": 1, + "proportion": 0, "border": 5, "gbSpan": "1,1", "gbPosition": "0,0", @@ -814,7 +814,7 @@ }, { "type": "string", "m_label": "Minimum Size:", - "m_value": "250,-1" + "m_value": "250,250" }, { "type": "string", "m_label": "Name:", @@ -880,11 +880,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:", @@ -1047,7 +1047,7 @@ }, { "type": "bool", "m_label": "Bool Value", - "m_value": true + "m_value": false }, { "type": "string", "m_label": "Wildcard", @@ -1078,7 +1078,7 @@ }, { "type": "string", "m_label": "Label:", - "m_value": "Line thickness" + "m_value": "Thickness" }, { "type": "multi-string", "m_label": "Tooltip:", @@ -1128,6 +1128,136 @@ }], "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": "" + }, { + "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", + "m_label": "String Value", + "m_value": "1" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "Solid;Dot;Dash;Dot and dash;Cross;Diagonal cross" + }, { + "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": "" + }], + "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_pgProplineAxis" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Axis" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "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", + "m_label": "String Value", + "m_value": "1" + }, { + "type": "multi-string", + "m_label": "Choices:", + "m_value": "Y;X" + }, { + "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": "" + }], + "m_events": [], + "m_children": [] }] }, { "m_type": 4486, @@ -1193,7 +1323,852 @@ "colour": "" }], "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": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "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_pgPropYMarginsBot" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Botton" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "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": "" + }], + "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_pgPropYMarginsLeft" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Left" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "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": "" + }], + "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_pgPropYMarginsRight" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Right" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "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": "" + }, { + "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": "" + }], + "m_events": [], + "m_children": [] + }] + }] }] }] }, { diff --git a/Project/ChartViewBase.cpp b/Project/ChartViewBase.cpp new file mode 100644 index 0000000..2fbec21 --- /dev/null +++ b/Project/ChartViewBase.cpp @@ -0,0 +1,191 @@ +////////////////////////////////////////////////////////////////////// +// 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_menuItemSandToClipboard = new wxMenuItem(m_menuFile, wxID_ANY, _("Send to clipboard"), wxT(""), wxITEM_NORMAL); + m_menuFile->Append(m_menuItemSandToClipboard); + + 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); + + 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_pgPropColor = m_pgMgr->AppendIn( m_pgPropLineProp, new wxSystemColourProperty( _("Color")) ); + m_pgPropColor->SetValueToUnspecified(); + m_pgPropColor->SetHelpString(wxT("")); + m_pgPropColor->SetEditor( wxT("ChoiceAndButton") ); + + 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_pgMgrArr.Add(_("Solid")); + m_pgMgrArr.Add(_("Dot")); + m_pgMgrArr.Add(_("Dash")); + m_pgMgrArr.Add(_("Dot and dash")); + m_pgMgrArr.Add(_("Cross")); + m_pgMgrArr.Add(_("Diagonal cross")); + 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_pgPropYMarginsBot = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Botton"), wxPG_LABEL, 40) ); + m_pgPropYMarginsBot->SetHelpString(wxT("")); + + m_pgPropYMarginsLeft = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Left"), wxPG_LABEL, 60) ); + m_pgPropYMarginsLeft->SetHelpString(wxT("")); + + m_pgPropYMarginsRight = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Right"), wxPG_LABEL, 10) ); + m_pgPropYMarginsRight->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, 0) ); + m_pgPropXMax->SetHelpString(wxT("")); + + m_pgPropYMin = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y min"), wxPG_LABEL, 0) ); + m_pgPropYMin->SetHelpString(wxT("")); + + m_pgPropYMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y max"), wxPG_LABEL, 0) ); + m_pgPropYMax->SetHelpString(wxT("")); + m_pgMgr->SetMinSize(wxSize(250,250)); + + m_panelChart = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxTAB_TRAVERSAL); + + boxSizer_lvl1_1->Add(m_panelChart, 1, wxEXPAND, WXC_FROM_DIP(5)); + m_panelChart->SetMinSize(wxSize(100,300)); + + 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 +} + +ChartViewBase::~ChartViewBase() +{ +} diff --git a/Project/ChartViewBase.h b/Project/ChartViewBase.h new file mode 100644 index 0000000..e83ab94 --- /dev/null +++ b/Project/ChartViewBase.h @@ -0,0 +1,91 @@ +////////////////////////////////////////////////////////////////////// +// 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if wxVERSION_NUMBER >= 2900 +#include +#include +#include +#include +#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_menuItemSandToClipboard; + 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_pgPropColor; + 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_pgPropYMarginsBot; + wxPGProperty* m_pgPropYMarginsLeft; + wxPGProperty* m_pgPropYMarginsRight; + wxPGProperty* m_pgPropAxisLimit; + wxPGProperty* m_pgPropXMin; + wxPGProperty* m_pgPropXMax; + wxPGProperty* m_pgPropYMin; + wxPGProperty* m_pgPropYMax; + wxPanel* m_panelChart; + +protected: + +public: + wxMenuBar* GetMenuBar() { return m_menuBar; } + wxTreeCtrl* GetTreeCtrl() { return m_treeCtrl; } + wxPropertyGridManager* GetPgMgr() { return m_pgMgr; } + wxPanel* GetPanelChart() { return m_panelChart; } + 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 + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include +#include +#include +#include + +#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/Project.project b/Project/Project.project index ac88084..d055b7a 100644 --- a/Project/Project.project +++ b/Project/Project.project @@ -57,6 +57,7 @@ + @@ -146,6 +147,7 @@ + @@ -189,6 +191,7 @@ + @@ -199,6 +202,8 @@ + + -- cgit From c3b8370a456085dd835349a8c50e7a9e0a117c45 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Tue, 25 Apr 2017 19:29:34 -0300 Subject: wxMathPlot implemented on chart view --- Project/ChartView.cpp | 50 +++- Project/ChartView.h | 19 +- Project/ChartView.wxcp | 141 +--------- Project/ChartViewBase.cpp | 15 +- Project/ChartViewBase.h | 5 +- Project/ControlEditor.cpp | 10 + Project/ControlEditor.h | 2 + Project/ControlEditor.wxcp | 9 +- Project/ControlEditorBase.cpp | 2 + Project/ControlEditorBase.h | 2 +- Project/Project.mk | 39 ++- Project/Project.project | 4 +- Project/Project.txt | 2 +- Project/data/lang/pt_BR/pt_BR.mo | Bin 6405 -> 6544 bytes Project/data/lang/pt_BR/pt_BR.po | 580 +++++++++++++++++++++++++++++---------- 15 files changed, 571 insertions(+), 309 deletions(-) (limited to 'Project') diff --git a/Project/ChartView.cpp b/Project/ChartView.cpp index a5fe183..25d1b96 100644 --- a/Project/ChartView.cpp +++ b/Project/ChartView.cpp @@ -1,11 +1,55 @@ #include "ChartView.h" -ChartView::ChartView(wxWindow* parent) - : ChartViewBase(parent) +ChartView::ChartView(wxWindow* parent) : ChartViewBase(parent) { + m_pgPropColor = m_pgMgr->Insert(m_pgPropLineProp, 1, new wxColourProperty(_("Color"))); + m_pgPropColor->SetEditor(wxT("ChoiceAndButton")); + m_pgPropColor->SetValue(static_cast(*wxBLACK)); + + m_pgPropMargins->SetValue(wxT("")); + m_pgMgr->Collapse(m_pgPropMargins); + m_pgPropAxisLimit->SetValue(wxT("")); + m_pgMgr->Collapse(m_pgPropAxisLimit); + + SetMPWindow(); + wxSizer* sizer = GetSizer(); + sizer->Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5)); + Layout(); + SetInitialSize(); } -ChartView::~ChartView() +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(false); + m_yaxis->SetTicks(false); + + 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(true); + m_coords->SetVisible(false); + + m_mpWindow->EnableDoubleBuffer(true); + m_mpWindow->LockAspect(false); + m_mpWindow->Fit(); } +void ChartView::OnPropertyGridChange(wxPropertyGridEvent& event) {} diff --git a/Project/ChartView.h b/Project/ChartView.h index 191a264..316aae9 100644 --- a/Project/ChartView.h +++ b/Project/ChartView.h @@ -1,11 +1,26 @@ #ifndef CHARTVIEW_H #define CHARTVIEW_H #include "ChartViewBase.h" +#include "wxMathPlot/mathplot.h" + +#include class ChartView : public ChartViewBase { -public: + public: ChartView(wxWindow* parent); virtual ~ChartView(); + + protected: + virtual void OnPropertyGridChange(wxPropertyGridEvent& event); + virtual void SetMPWindow(); + mpWindow* m_mpWindow = NULL; + mpScaleX* m_xaxis = NULL; + mpScaleY* m_yaxis = NULL; + mpText* m_chartTitle = NULL; + mpInfoCoords* m_coords = NULL; + mpInfoLegend* m_leg = NULL; + + wxPGProperty* m_pgPropColor = NULL; }; -#endif // CHARTVIEW_H +#endif // CHARTVIEW_H diff --git a/Project/ChartView.wxcp b/Project/ChartView.wxcp index 7a36c9f..9cee9d2 100644 --- a/Project/ChartView.wxcp +++ b/Project/ChartView.wxcp @@ -868,7 +868,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, @@ -998,71 +1005,6 @@ }], "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_pgPropColor" - }, { - "type": "string", - "m_label": "Label:", - "m_value": "Color" - }, { - "type": "multi-string", - "m_label": "Tooltip:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Bg Colour:", - "colour": "" - }, { - "type": "choice", - "m_label": "Property Editor Control", - "m_selection": 6, - "m_options": ["", "TextCtrl", "Choice", "ComboBox", "CheckBox", "TextCtrlAndButton", "ChoiceAndButton", "SpinCtrl", "DatePickerCtrl"] - }, { - "type": "choice", - "m_label": "Kind:", - "m_selection": 15, - "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": false - }, { - "type": "string", - "m_label": "Wildcard", - "m_value": "" - }, { - "type": "font", - "m_label": "Font:", - "m_value": "" - }, { - "type": "colour", - "m_label": "Initial Colour", - "colour": "" - }], - "m_events": [], - "m_children": [] }, { "m_type": 4486, "proportion": 0, @@ -2171,73 +2113,6 @@ }] }] }] - }, { - "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": "" - }, { - "type": "colour", - "m_label": "Fg Colour:", - "colour": "" - }, { - "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 index 2fbec21..fcb4307 100644 --- a/Project/ChartViewBase.cpp +++ b/Project/ChartViewBase.cpp @@ -87,11 +87,6 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_pgPropDraw->SetHelpString(wxT("")); m_pgPropDraw->SetEditor( wxT("CheckBox") ); - m_pgPropColor = m_pgMgr->AppendIn( m_pgPropLineProp, new wxSystemColourProperty( _("Color")) ); - m_pgPropColor->SetValueToUnspecified(); - m_pgPropColor->SetHelpString(wxT("")); - m_pgPropColor->SetEditor( wxT("ChoiceAndButton") ); - m_pgProplineThick = m_pgMgr->AppendIn( m_pgPropLineProp, new wxIntProperty( _("Thickness"), wxPG_LABEL, 1) ); m_pgProplineThick->SetHelpString(wxT("")); m_pgProplineThick->SetEditor( wxT("TextCtrl") ); @@ -162,11 +157,6 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_pgPropYMax->SetHelpString(wxT("")); m_pgMgr->SetMinSize(wxSize(250,250)); - m_panelChart = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxTAB_TRAVERSAL); - - boxSizer_lvl1_1->Add(m_panelChart, 1, wxEXPAND, WXC_FROM_DIP(5)); - m_panelChart->SetMinSize(wxSize(100,300)); - SetName(wxT("ChartViewBase")); SetSize(-1,-1); if (GetSizer()) { @@ -184,8 +174,13 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti wxPersistenceManager::Get().Restore(this); } #endif + // Connect events + m_pgMgr->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this); + } ChartViewBase::~ChartViewBase() { + m_pgMgr->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this); + } diff --git a/Project/ChartViewBase.h b/Project/ChartViewBase.h index e83ab94..1b67f7b 100644 --- a/Project/ChartViewBase.h +++ b/Project/ChartViewBase.h @@ -19,7 +19,6 @@ #include #include #include -#include #if wxVERSION_NUMBER >= 2900 #include #include @@ -57,7 +56,6 @@ protected: wxPropertyGridManager* m_pgMgr; wxPGProperty* m_pgPropLineProp; wxPGProperty* m_pgPropDraw; - wxPGProperty* m_pgPropColor; wxPGProperty* m_pgProplineThick; wxPGProperty* m_pgProplineType; wxPGProperty* m_pgProplineAxis; @@ -75,15 +73,14 @@ protected: wxPGProperty* m_pgPropXMax; wxPGProperty* m_pgPropYMin; wxPGProperty* m_pgPropYMax; - wxPanel* m_panelChart; protected: + virtual void OnPropertyGridChange(wxPropertyGridEvent& event) { event.Skip(); } public: wxMenuBar* GetMenuBar() { return m_menuBar; } wxTreeCtrl* GetTreeCtrl() { return m_treeCtrl; } wxPropertyGridManager* GetPgMgr() { return m_pgMgr; } - wxPanel* GetPanelChart() { return m_panelChart; } 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(); }; diff --git a/Project/ControlEditor.cpp b/Project/ControlEditor.cpp index e457d0f..927654e 100644 --- a/Project/ControlEditor.cpp +++ b/Project/ControlEditor.cpp @@ -13,6 +13,8 @@ #include "Constant.h" #include "Gain.h" +#include "ChartView.h" + ControlElementButton::ControlElementButton(wxWindow* parent, wxString label, wxImage image, wxWindowID id) : wxWindow(parent, id) { @@ -611,6 +613,14 @@ void ControlEditor::OnKeyDown(wxKeyEvent& event) { RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT); } break; + case 'L': + { + //tests + if(event.ControlDown() && event.ShiftDown()) { + ChartView* cView = new ChartView(this); + cView->Show(); + } + } } } } diff --git a/Project/ControlEditor.h b/Project/ControlEditor.h index eb1bc4f..e42b0c0 100644 --- a/Project/ControlEditor.h +++ b/Project/ControlEditor.h @@ -25,6 +25,8 @@ class Exponential; class Constant; class Gain; +class ChartView; + 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/Project.mk b/Project/Project.mk index f2b403d..8b14dc2 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=NDSE-69 -Date :=24/04/2017 +Date :=25/04/2017 CodeLitePath :="C:/Program Files/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC @@ -65,12 +65,13 @@ 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) + $(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) @@ -183,6 +184,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 +232,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 +272,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 d055b7a..3ff716c 100644 --- a/Project/Project.project +++ b/Project/Project.project @@ -57,7 +57,6 @@ - @@ -89,6 +88,7 @@ + @@ -147,7 +147,6 @@ - @@ -179,6 +178,7 @@ + diff --git a/Project/Project.txt b/Project/Project.txt index 806024e..d80be54 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/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 Binary files a/Project/data/lang/pt_BR/pt_BR.mo and b/Project/data/lang/pt_BR/pt_BR.mo 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 \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" @@ -1127,10 +1455,6 @@ msgstr "" 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" @@ -1231,10 +1555,6 @@ msgstr "Move os elementos selecionados" 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 "" @@ -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" -- cgit From ee58faacaaaf83293ead87696847b018f9a1281d Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Wed, 26 Apr 2017 19:51:45 -0300 Subject: Element plot data class implemented --- Project/ChartView.cpp | 134 +++++++++++++++++++++++++++++++++++++++++--- Project/ChartView.h | 16 ++++++ Project/ChartView.wxcp | 84 ++++++++++++++++++++++----- Project/ChartViewBase.cpp | 36 ++++++++---- Project/ChartViewBase.h | 16 ++++-- Project/ElementPlotData.cpp | 22 ++++++++ Project/ElementPlotData.h | 82 +++++++++++++++++++++++++++ Project/Project.mk | 26 ++++++--- Project/Project.project | 2 + Project/Project.txt | 2 +- 10 files changed, 375 insertions(+), 45 deletions(-) create mode 100644 Project/ElementPlotData.cpp create mode 100644 Project/ElementPlotData.h (limited to 'Project') diff --git a/Project/ChartView.cpp b/Project/ChartView.cpp index 25d1b96..166cdac 100644 --- a/Project/ChartView.cpp +++ b/Project/ChartView.cpp @@ -2,18 +2,24 @@ ChartView::ChartView(wxWindow* parent) : ChartViewBase(parent) { + m_menuItemShowGrid->Check(m_hideGrid ? false : true); + m_menuItemShowLabel->Check(m_showLeg); + m_menuItemShowCoordinates->Check(m_showCoords); + m_menuItemDarkTheme->Check(m_darkTheme); + + // Create color property. m_pgPropColor = m_pgMgr->Insert(m_pgPropLineProp, 1, new wxColourProperty(_("Color"))); m_pgPropColor->SetEditor(wxT("ChoiceAndButton")); m_pgPropColor->SetValue(static_cast(*wxBLACK)); + // Set margins and axis limit to composed mode. m_pgPropMargins->SetValue(wxT("")); m_pgMgr->Collapse(m_pgPropMargins); m_pgPropAxisLimit->SetValue(wxT("")); m_pgMgr->Collapse(m_pgPropAxisLimit); SetMPWindow(); - wxSizer* sizer = GetSizer(); - sizer->Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5)); + GetSizer()->Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5)); Layout(); SetInitialSize(); } @@ -28,8 +34,8 @@ void ChartView::SetMPWindow() m_yaxis = new mpScaleY("", mpALIGN_LEFT, true); m_xaxis->SetDrawOutsideMargins(false); m_yaxis->SetDrawOutsideMargins(false); - m_xaxis->SetTicks(false); - m_yaxis->SetTicks(false); + m_xaxis->SetTicks(m_hideGrid); + m_yaxis->SetTicks(m_hideGrid); m_leg = new mpInfoLegend(wxRect(200, 20, 40, 40), wxWHITE_BRUSH); m_coords = new mpInfoCoords(wxRect(0, 0, 0, 0), wxWHITE_BRUSH); @@ -44,12 +50,126 @@ void ChartView::SetMPWindow() m_mpWindow->AddLayer(m_coords); m_mpWindow->AddLayer(m_chartTitle); - m_leg->SetVisible(true); - m_coords->SetVisible(false); + m_leg->SetVisible(m_showLeg); + m_coords->SetVisible(m_showCoords); m_mpWindow->EnableDoubleBuffer(true); m_mpWindow->LockAspect(false); + Fit(); +} + +void ChartView::OnPropertyGridChange(wxPropertyGridEvent& event) +{ + bool fit = false; + + if(event.GetPropertyName() == _("Margins")) { + m_mpWindow->SetMargins(m_pgPropMarginsUp->GetValue().GetLong(), m_pgPropMarginsRight->GetValue().GetLong(), + m_pgPropMarginsBot->GetValue().GetLong(), m_pgPropMarginsLeft->GetValue().GetLong()); + m_mpWindow->UpdateAll(); + } + if(event.GetPropertyName() == _("Axis limit")) { + m_mpWindow->Fit(m_pgPropXMin->GetValue().GetDouble(), m_pgPropXMax->GetValue().GetDouble(), + m_pgPropYMin->GetValue().GetDouble(), m_pgPropYMax->GetValue().GetDouble()); + m_mpWindow->UpdateAll(); + } + UpdatePlot(fit); +} + +void ChartView::OnMenuDarkThemeClick(wxCommandEvent& event) +{ + m_darkTheme = event.IsChecked(); + wxColour grey(96, 96, 96); + + if(m_darkTheme) { + m_mpWindow->SetColourTheme(*wxBLACK, *wxWHITE, grey); + m_leg->SetBrush(*wxBLACK_BRUSH); + m_coords->SetBrush(*wxBLACK_BRUSH); + } else { + m_mpWindow->SetColourTheme(*wxWHITE, *wxBLACK, grey); + m_leg->SetBrush(*wxWHITE_BRUSH); + m_coords->SetBrush(*wxWHITE_BRUSH); + } + + m_mpWindow->UpdateAll(); +} + +void ChartView::OnMenuSaveImageClick(wxCommandEvent& event) {} +void ChartView::OnMenuSendClipClick(wxCommandEvent& event) {} +void ChartView::OnMenuShowCoordinatesClick(wxCommandEvent& event) +{ + m_showCoords = event.IsChecked(); + m_coords->SetVisible(m_showCoords); + m_mpWindow->UpdateAll(); +} + +void ChartView::OnMenuShowGridClick(wxCommandEvent& event) +{ + m_hideGrid = event.IsChecked() ? false : true; + m_xaxis->SetTicks(m_hideGrid); + m_yaxis->SetTicks(m_hideGrid); + m_mpWindow->UpdateAll(); +} + +void ChartView::OnMenuShowLabelClick(wxCommandEvent& event) +{ + m_showLeg = event.IsChecked(); + m_leg->SetVisible(m_showLeg); + m_mpWindow->UpdateAll(); +} + +void ChartView::Fit() +{ m_mpWindow->Fit(); + double bBox[4]; + m_mpWindow->GetBoundingBox(bBox); + + m_pgPropXMin->SetValue(bBox[0]); + m_pgPropXMax->SetValue(bBox[1]); + m_pgPropYMin->SetValue(bBox[2]); + m_pgPropYMax->SetValue(bBox[3]); } -void ChartView::OnPropertyGridChange(wxPropertyGridEvent& event) {} +void ChartView::UpdatePlot(bool fit) +{ + wxRect legRect = m_leg->GetRectangle(); + wxRect coordsRect = m_coords->GetRectangle(); + m_mpWindow->DelAllLayers(true, false); + + // GoAllTrees(treeCtrl_ChartSelection->GetRootItem()); + + m_xaxis = new mpScaleX(m_pgPropXLabel->GetValueAsString(), mpALIGN_BOTTOM, true); + m_yaxis = new mpScaleY(m_pgPropYLabel->GetValueAsString(), mpALIGN_LEFT, true); + m_leg = new mpInfoLegend(legRect, wxWHITE_BRUSH); + m_coords = new mpInfoCoords(coordsRect, wxWHITE_BRUSH); + + m_xaxis->SetDrawOutsideMargins(false); + m_yaxis->SetDrawOutsideMargins(false); + m_xaxis->SetTicks(m_hideGrid); + m_yaxis->SetTicks(m_hideGrid); + + mpText* chartTitle = new mpText(m_pgPropChartTitle->GetValueAsString(), 50, 0); + wxFont chartTitleFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD); + chartTitle->SetFont(chartTitleFont); + + m_mpWindow->AddLayer(m_xaxis); + m_mpWindow->AddLayer(m_yaxis); + m_mpWindow->AddLayer(m_leg); + m_mpWindow->AddLayer(m_coords); + m_mpWindow->AddLayer(chartTitle); + + m_leg->SetVisible(m_showLeg); + m_coords->SetVisible(m_showCoords); + + if(fit) Fit(); + + wxColour grey(96, 96, 96); + if(m_darkTheme) { + m_mpWindow->SetColourTheme(*wxBLACK, *wxWHITE, grey); + m_leg->SetBrush(*wxBLACK_BRUSH); + m_coords->SetBrush(*wxBLACK_BRUSH); + } else { + m_mpWindow->SetColourTheme(*wxWHITE, *wxBLACK, grey); + m_leg->SetBrush(*wxWHITE_BRUSH); + m_coords->SetBrush(*wxWHITE_BRUSH); + } +} diff --git a/Project/ChartView.h b/Project/ChartView.h index 316aae9..c586fbb 100644 --- a/Project/ChartView.h +++ b/Project/ChartView.h @@ -10,8 +10,19 @@ class ChartView : public ChartViewBase public: ChartView(wxWindow* parent); virtual ~ChartView(); + + void Fit(); + void UpdatePlot(bool fit = true); protected: + virtual void OnMenuDarkThemeClick(wxCommandEvent& event); + virtual void OnMenuExitClick(wxCommandEvent& event) { Close(); } + virtual void OnMenuFitClick(wxCommandEvent& event) { Fit(); } + virtual void OnMenuSaveImageClick(wxCommandEvent& event); + virtual void OnMenuSendClipClick(wxCommandEvent& event); + virtual void OnMenuShowCoordinatesClick(wxCommandEvent& event); + virtual void OnMenuShowGridClick(wxCommandEvent& event); + virtual void OnMenuShowLabelClick(wxCommandEvent& event); virtual void OnPropertyGridChange(wxPropertyGridEvent& event); virtual void SetMPWindow(); mpWindow* m_mpWindow = NULL; @@ -21,6 +32,11 @@ class ChartView : public ChartViewBase mpInfoCoords* m_coords = NULL; mpInfoLegend* m_leg = NULL; + bool m_hideGrid = false; + bool m_showLeg = false; + bool m_showCoords = false; + bool m_darkTheme = false; + wxPGProperty* m_pgPropColor = NULL; }; #endif // CHARTVIEW_H diff --git a/Project/ChartView.wxcp b/Project/ChartView.wxcp index 9cee9d2..3fe03fd 100644 --- a/Project/ChartView.wxcp +++ b/Project/ChartView.wxcp @@ -255,7 +255,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuSaveImageClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -272,7 +279,7 @@ }, { "type": "string", "m_label": "Name:", - "m_value": "m_menuItemSandToClipboard" + "m_value": "m_menuItemSendToClipboard" }, { "type": "string", "m_label": "Label:", @@ -299,7 +306,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuSendClipClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -387,7 +401,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuExitClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }] }, { @@ -450,7 +471,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuFitClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -538,7 +566,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuShowGridClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -582,7 +617,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuShowLabelClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -626,7 +668,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuShowCoordinatesClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }, { "m_type": 4459, @@ -670,7 +719,14 @@ "m_label": "Checked", "m_value": false }], - "m_events": [], + "m_events": [{ + "m_eventName": "wxEVT_COMMAND_MENU_SELECTED", + "m_eventClass": "wxCommandEvent", + "m_eventHandler": "wxCommandEventHandler", + "m_functionNameAndSignature": "OnMenuDarkThemeClick(wxCommandEvent& event)", + "m_description": "Menu item has been clicked", + "m_noBody": false + }], "m_children": [] }] }] @@ -1600,7 +1656,7 @@ "m_properties": [{ "type": "string", "m_label": "Name:", - "m_value": "m_pgPropYMarginsBot" + "m_value": "m_pgPropMarginsBot" }, { "type": "string", "m_label": "Label:", @@ -1665,7 +1721,7 @@ "m_properties": [{ "type": "string", "m_label": "Name:", - "m_value": "m_pgPropYMarginsLeft" + "m_value": "m_pgPropMarginsLeft" }, { "type": "string", "m_label": "Label:", @@ -1730,7 +1786,7 @@ "m_properties": [{ "type": "string", "m_label": "Name:", - "m_value": "m_pgPropYMarginsRight" + "m_value": "m_pgPropMarginsRight" }, { "type": "string", "m_label": "Label:", @@ -1951,7 +2007,7 @@ }, { "type": "string", "m_label": "String Value", - "m_value": "0" + "m_value": "1" }, { "type": "multi-string", "m_label": "Choices:", @@ -2081,7 +2137,7 @@ }, { "type": "string", "m_label": "String Value", - "m_value": "0" + "m_value": "1" }, { "type": "multi-string", "m_label": "Choices:", diff --git a/Project/ChartViewBase.cpp b/Project/ChartViewBase.cpp index fcb4307..22a650b 100644 --- a/Project/ChartViewBase.cpp +++ b/Project/ChartViewBase.cpp @@ -32,8 +32,8 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_menuItemSaveImage = new wxMenuItem(m_menuFile, wxID_ANY, _("Save chart as image"), wxT(""), wxITEM_NORMAL); m_menuFile->Append(m_menuItemSaveImage); - m_menuItemSandToClipboard = new wxMenuItem(m_menuFile, wxID_ANY, _("Send to clipboard"), wxT(""), wxITEM_NORMAL); - m_menuFile->Append(m_menuItemSandToClipboard); + m_menuItemSendToClipboard = new wxMenuItem(m_menuFile, wxID_ANY, _("Send to clipboard"), wxT(""), wxITEM_NORMAL); + m_menuFile->Append(m_menuItemSendToClipboard); m_menuFile->AppendSeparator(); @@ -132,14 +132,14 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_pgPropMarginsUp = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Up"), wxPG_LABEL, 20) ); m_pgPropMarginsUp->SetHelpString(wxT("")); - m_pgPropYMarginsBot = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Botton"), wxPG_LABEL, 40) ); - m_pgPropYMarginsBot->SetHelpString(wxT("")); + m_pgPropMarginsBot = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Botton"), wxPG_LABEL, 40) ); + m_pgPropMarginsBot->SetHelpString(wxT("")); - m_pgPropYMarginsLeft = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Left"), wxPG_LABEL, 60) ); - m_pgPropYMarginsLeft->SetHelpString(wxT("")); + m_pgPropMarginsLeft = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Left"), wxPG_LABEL, 60) ); + m_pgPropMarginsLeft->SetHelpString(wxT("")); - m_pgPropYMarginsRight = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Right"), wxPG_LABEL, 10) ); - m_pgPropYMarginsRight->SetHelpString(wxT("")); + m_pgPropMarginsRight = m_pgMgr->AppendIn( m_pgPropMargins, new wxIntProperty( _("Right"), wxPG_LABEL, 10) ); + m_pgPropMarginsRight->SetHelpString(wxT("")); m_pgPropAxisLimit = m_pgMgr->AppendIn( m_pgPropChartProp, new wxStringProperty( _("Axis limit"), wxPG_LABEL, wxT("")) ); m_pgPropAxisLimit->SetHelpString(wxT("")); @@ -147,13 +147,13 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_pgPropXMin = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("X min"), wxPG_LABEL, 0) ); m_pgPropXMin->SetHelpString(wxT("")); - m_pgPropXMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("X max"), wxPG_LABEL, 0) ); + m_pgPropXMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("X max"), wxPG_LABEL, 1) ); m_pgPropXMax->SetHelpString(wxT("")); m_pgPropYMin = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y min"), wxPG_LABEL, 0) ); m_pgPropYMin->SetHelpString(wxT("")); - m_pgPropYMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y max"), wxPG_LABEL, 0) ); + m_pgPropYMax = m_pgMgr->AppendIn( m_pgPropAxisLimit, new wxFloatProperty( _("Y max"), wxPG_LABEL, 1) ); m_pgPropYMax->SetHelpString(wxT("")); m_pgMgr->SetMinSize(wxSize(250,250)); @@ -175,12 +175,28 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti } #endif // Connect events + this->Connect(m_menuItemSaveImage->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSaveImageClick), NULL, this); + this->Connect(m_menuItemSendToClipboard->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSendClipClick), NULL, this); + this->Connect(m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuExitClick), NULL, this); + this->Connect(m_menuItemFit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuFitClick), NULL, this); + this->Connect(m_menuItemShowGrid->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowGridClick), NULL, this); + this->Connect(m_menuItemShowLabel->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowLabelClick), NULL, this); + this->Connect(m_menuItemShowCoordinates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowCoordinatesClick), NULL, this); + this->Connect(m_menuItemDarkTheme->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuDarkThemeClick), NULL, this); m_pgMgr->Connect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this); } ChartViewBase::~ChartViewBase() { + this->Disconnect(m_menuItemSaveImage->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSaveImageClick), NULL, this); + this->Disconnect(m_menuItemSendToClipboard->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuSendClipClick), NULL, this); + this->Disconnect(m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuExitClick), NULL, this); + this->Disconnect(m_menuItemFit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuFitClick), NULL, this); + this->Disconnect(m_menuItemShowGrid->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowGridClick), NULL, this); + this->Disconnect(m_menuItemShowLabel->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowLabelClick), NULL, this); + this->Disconnect(m_menuItemShowCoordinates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuShowCoordinatesClick), NULL, this); + this->Disconnect(m_menuItemDarkTheme->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ChartViewBase::OnMenuDarkThemeClick), NULL, this); m_pgMgr->Disconnect(wxEVT_PG_CHANGED, wxPropertyGridEventHandler(ChartViewBase::OnPropertyGridChange), NULL, this); } diff --git a/Project/ChartViewBase.h b/Project/ChartViewBase.h index 1b67f7b..b7d6494 100644 --- a/Project/ChartViewBase.h +++ b/Project/ChartViewBase.h @@ -42,7 +42,7 @@ protected: wxMenuBar* m_menuBar; wxMenu* m_menuFile; wxMenuItem* m_menuItemSaveImage; - wxMenuItem* m_menuItemSandToClipboard; + wxMenuItem* m_menuItemSendToClipboard; wxMenuItem* m_menuItemSeparator_1; wxMenuItem* m_menuItemExit; wxMenu* m_menuView; @@ -65,9 +65,9 @@ protected: wxPGProperty* m_pgPropYLabel; wxPGProperty* m_pgPropMargins; wxPGProperty* m_pgPropMarginsUp; - wxPGProperty* m_pgPropYMarginsBot; - wxPGProperty* m_pgPropYMarginsLeft; - wxPGProperty* m_pgPropYMarginsRight; + wxPGProperty* m_pgPropMarginsBot; + wxPGProperty* m_pgPropMarginsLeft; + wxPGProperty* m_pgPropMarginsRight; wxPGProperty* m_pgPropAxisLimit; wxPGProperty* m_pgPropXMin; wxPGProperty* m_pgPropXMax; @@ -75,6 +75,14 @@ protected: wxPGProperty* m_pgPropYMax; protected: + virtual void OnMenuSaveImageClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuSendClipClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuExitClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuFitClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuShowGridClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuShowLabelClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuShowCoordinatesClick(wxCommandEvent& event) { event.Skip(); } + virtual void OnMenuDarkThemeClick(wxCommandEvent& event) { event.Skip(); } virtual void OnPropertyGridChange(wxPropertyGridEvent& event) { event.Skip(); } public: diff --git a/Project/ElementPlotData.cpp b/Project/ElementPlotData.cpp new file mode 100644 index 0000000..6639802 --- /dev/null +++ b/Project/ElementPlotData.cpp @@ -0,0 +1,22 @@ +#include "ElementPlotData.h" + +ElementPlotData::ElementPlotData(wxString name, CurveType type) +{ + m_name = name; + m_curveType = type; +} + +ElementPlotData::~ElementPlotData() {} +void ElementPlotData::AddData(std::vector values, wxString name) +{ + PlotData* data = new PlotData(); + data->SetName(name); + data->SetValues(values); + data->SetPlot(false); + data->SetAxis(0); + data->SetColour(*wxBLACK); + data->SetPenType(wxPENSTYLE_SOLID); + data->SetThick(1); + + m_elementData.push_back(data); +} diff --git a/Project/ElementPlotData.h b/Project/ElementPlotData.h new file mode 100644 index 0000000..64bc03e --- /dev/null +++ b/Project/ElementPlotData.h @@ -0,0 +1,82 @@ +#ifndef ELEMENTPLOTDATA_H +#define ELEMENTPLOTDATA_H + +#include +#include +#include + +#include + +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& 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 GetValues() const { return m_values; } + protected: + std::vector m_values; + wxString m_name; + bool m_plot; + wxColour m_colour; + int m_thick; + wxPenStyle m_penType; + int m_axis; +}; + +class ElementPlotData +{ + public: + enum CurveType { + CT_TIME = 0, + CT_BUS, + CT_SYNC_GENERATOR, + CT_SYNC_COMPENSATOR, + CT_TRANSFORMER, + CT_LINE, + CT_IND_MOTOR, + CT_SHUNT_REACTOR, + CT_SHUNT_CAPACITOR, + CT_LOAD, + }; + ElementPlotData(wxString name, CurveType type); + ~ElementPlotData(); + + wxString GetName() const { return m_name; } + void SetName(wxString name) { m_name = name; } + CurveType GetCurveType() const { return m_curveType; } + PlotData* GetPlotData(int index) const { return m_elementData[index]; } + void AddData(std::vector values, wxString name); + + int GetElementDataNumber() const { return static_cast(m_elementData.size()); } + std::vector GetValues(int index) const { return m_elementData[index]->GetValues(); } + void SetValues(int index, std::vector 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 m_elementData; +}; + +#endif // ELEMENTPLOTDATA_H diff --git a/Project/Project.mk b/Project/Project.mk index 8b14dc2..b374fd4 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=NDSE-69 -Date :=25/04/2017 +Date :=26/04/2017 CodeLitePath :="C:/Program Files/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC @@ -64,14 +64,14 @@ AS := C:/TDM-GCC-64/bin/as.exe CodeLiteDir:=C:\Program Files\CodeLite WXWIN:=C:\wxWidgets-3.1.0 WXCFG:=gcc_dll\mswu -Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/win_resources.rc$(ObjectSuffix) $(IntermediateDirectory)/ElementDataObject.cpp$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxGLString.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditor.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/Camera.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/ElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/Line.cpp$(ObjectSuffix) $(IntermediateDirectory)/Transformer.cpp$(ObjectSuffix) $(IntermediateDirectory)/Machines.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncGenerator.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Branch.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/SyncMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Shunt.cpp$(ObjectSuffix) $(IntermediateDirectory)/Load.cpp$(ObjectSuffix) $(IntermediateDirectory)/Inductor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Capacitor.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerFlow.cpp$(ObjectSuffix) $(IntermediateDirectory)/Fault.cpp$(ObjectSuffix) $(IntermediateDirectory)/Text.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/GraphicalElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunction.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConnectionLine.cpp$(ObjectSuffix) $(IntermediateDirectory)/Sum.cpp$(ObjectSuffix) $(IntermediateDirectory)/Multiplier.cpp$(ObjectSuffix) $(IntermediateDirectory)/Limiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Exponential.cpp$(ObjectSuffix) $(IntermediateDirectory)/Constant.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/Gain.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControl.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementContainer.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneratorStabForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SwitchingForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransformerForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LoadForm.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/ReactiveShuntElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotorForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMachineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TextForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunctionForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SumForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ExponentialForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConstantForm.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/GainForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControlForm.cpp$(ObjectSuffix) +Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/win_resources.rc$(ObjectSuffix) $(IntermediateDirectory)/ElementDataObject.cpp$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxGLString.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/ControlEditor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Camera.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/Line.cpp$(ObjectSuffix) $(IntermediateDirectory)/Transformer.cpp$(ObjectSuffix) $(IntermediateDirectory)/Machines.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncGenerator.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotor.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Branch.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Shunt.cpp$(ObjectSuffix) $(IntermediateDirectory)/Load.cpp$(ObjectSuffix) $(IntermediateDirectory)/Inductor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Capacitor.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerFlow.cpp$(ObjectSuffix) $(IntermediateDirectory)/Fault.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Text.cpp$(ObjectSuffix) $(IntermediateDirectory)/GraphicalElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunction.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConnectionLine.cpp$(ObjectSuffix) $(IntermediateDirectory)/Sum.cpp$(ObjectSuffix) $(IntermediateDirectory)/Multiplier.cpp$(ObjectSuffix) $(IntermediateDirectory)/Limiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Exponential.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Constant.cpp$(ObjectSuffix) $(IntermediateDirectory)/Gain.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControl.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementContainer.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneratorStabForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SwitchingForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransformerForm.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/LoadForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ReactiveShuntElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotorForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMachineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TextForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunctionForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SumForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ExponentialForm.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/ConstantForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GainForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControlForm.cpp$(ObjectSuffix) @@ -128,6 +128,14 @@ $(IntermediateDirectory)/Element.cpp$(DependSuffix): Element.cpp $(IntermediateDirectory)/Element.cpp$(PreprocessSuffix): Element.cpp $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/Element.cpp$(PreprocessSuffix) Element.cpp +$(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix): ElementPlotData.cpp $(IntermediateDirectory)/ElementPlotData.cpp$(DependSuffix) + $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ElementPlotData.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix) $(IncludePath) +$(IntermediateDirectory)/ElementPlotData.cpp$(DependSuffix): ElementPlotData.cpp + @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/ElementPlotData.cpp$(DependSuffix) -MM ElementPlotData.cpp + +$(IntermediateDirectory)/ElementPlotData.cpp$(PreprocessSuffix): ElementPlotData.cpp + $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ElementPlotData.cpp$(PreprocessSuffix) ElementPlotData.cpp + $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix): ArtMetro.cpp $(IntermediateDirectory)/ArtMetro.cpp$(DependSuffix) $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ArtMetro.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IncludePath) $(IntermediateDirectory)/ArtMetro.cpp$(DependSuffix): ArtMetro.cpp diff --git a/Project/Project.project b/Project/Project.project index 3ff716c..6671989 100644 --- a/Project/Project.project +++ b/Project/Project.project @@ -50,6 +50,7 @@ + @@ -140,6 +141,7 @@ + diff --git a/Project/Project.txt b/Project/Project.txt index d80be54..fbf464d 100644 --- a/Project/Project.txt +++ b/Project/Project.txt @@ -1 +1 @@ -./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/ElementDataObject.cpp.o ./Release/Element.cpp.o ./Release/ArtMetro.cpp.o ./Release/wxGLString.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/FileHanding.cpp.o ./Release/ControlEditor.cpp.o ./Release/Camera.cpp.o ./Release/ChartView.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/ChartViewBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.cpp.o ./Release/ChartViewBase.cpp.o ./Release/Bus.cpp.o ./Release/Line.cpp.o ./Release/Transformer.cpp.o ./Release/Machines.cpp.o ./Release/SyncGenerator.cpp.o ./Release/IndMotor.cpp.o ./Release/Branch.cpp.o ./Release/SyncMotor.cpp.o ./Release/Shunt.cpp.o ./Release/Load.cpp.o ./Release/Inductor.cpp.o ./Release/Capacitor.cpp.o ./Release/PowerElement.cpp.o ./Release/ElectricCalculation.cpp.o ./Release/PowerFlow.cpp.o ./Release/Fault.cpp.o ./Release/Text.cpp.o ./Release/GraphicalElement.cpp.o ./Release/ControlElement.cpp.o ./Release/TransferFunction.cpp.o ./Release/ConnectionLine.cpp.o ./Release/Sum.cpp.o ./Release/Multiplier.cpp.o ./Release/Limiter.cpp.o ./Release/RateLimiter.cpp.o ./Release/Exponential.cpp.o ./Release/Constant.cpp.o ./Release/Gain.cpp.o ./Release/IOControl.cpp.o ./Release/ControlElementContainer.cpp.o ./Release/wxMathPlot_mathplot.cpp.o ./Release/BusForm.cpp.o ./Release/GeneratorStabForm.cpp.o ./Release/LineForm.cpp.o ./Release/SwitchingForm.cpp.o ./Release/TransformerForm.cpp.o ./Release/LoadForm.cpp.o ./Release/ReactiveShuntElementForm.cpp.o ./Release/IndMotorForm.cpp.o ./Release/SyncMachineForm.cpp.o ./Release/TextForm.cpp.o ./Release/TransferFunctionForm.cpp.o ./Release/SumForm.cpp.o ./Release/LimiterForm.cpp.o ./Release/RateLimiterForm.cpp.o ./Release/ExponentialForm.cpp.o ./Release/ConstantForm.cpp.o ./Release/GainForm.cpp.o ./Release/IOControlForm.cpp.o +./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/ElementDataObject.cpp.o ./Release/Element.cpp.o ./Release/ElementPlotData.cpp.o ./Release/ArtMetro.cpp.o ./Release/wxGLString.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/FileHanding.cpp.o ./Release/ControlEditor.cpp.o ./Release/Camera.cpp.o ./Release/ChartView.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/ChartViewBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.cpp.o ./Release/ChartViewBase.cpp.o ./Release/Bus.cpp.o ./Release/Line.cpp.o ./Release/Transformer.cpp.o ./Release/Machines.cpp.o ./Release/SyncGenerator.cpp.o ./Release/IndMotor.cpp.o ./Release/Branch.cpp.o ./Release/SyncMotor.cpp.o ./Release/Shunt.cpp.o ./Release/Load.cpp.o ./Release/Inductor.cpp.o ./Release/Capacitor.cpp.o ./Release/PowerElement.cpp.o ./Release/ElectricCalculation.cpp.o ./Release/PowerFlow.cpp.o ./Release/Fault.cpp.o ./Release/Text.cpp.o ./Release/GraphicalElement.cpp.o ./Release/ControlElement.cpp.o ./Release/TransferFunction.cpp.o ./Release/ConnectionLine.cpp.o ./Release/Sum.cpp.o ./Release/Multiplier.cpp.o ./Release/Limiter.cpp.o ./Release/RateLimiter.cpp.o ./Release/Exponential.cpp.o ./Release/Constant.cpp.o ./Release/Gain.cpp.o ./Release/IOControl.cpp.o ./Release/ControlElementContainer.cpp.o ./Release/wxMathPlot_mathplot.cpp.o ./Release/BusForm.cpp.o ./Release/GeneratorStabForm.cpp.o ./Release/LineForm.cpp.o ./Release/SwitchingForm.cpp.o ./Release/TransformerForm.cpp.o ./Release/LoadForm.cpp.o ./Release/ReactiveShuntElementForm.cpp.o ./Release/IndMotorForm.cpp.o ./Release/SyncMachineForm.cpp.o ./Release/TextForm.cpp.o ./Release/TransferFunctionForm.cpp.o ./Release/SumForm.cpp.o ./Release/LimiterForm.cpp.o ./Release/RateLimiterForm.cpp.o ./Release/ExponentialForm.cpp.o ./Release/ConstantForm.cpp.o ./Release/GainForm.cpp.o ./Release/IOControlForm.cpp.o -- cgit From 50f31898499d1d1e1ebc8ab9c9c26d3b4ec1b3c1 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Thu, 27 Apr 2017 20:38:55 -0300 Subject: More methods implemented buggy --- Project/ChartView.cpp | 121 +++++++++++++++++++++++++++++++++++++++++++- Project/ChartView.h | 22 ++++++-- Project/ChartView.wxcp | 18 ++++++- Project/ChartViewBase.cpp | 6 ++- Project/ChartViewBase.h | 2 + Project/ControlEditor.cpp | 26 +++++++++- Project/ControlEditor.h | 1 + Project/ElementPlotData.cpp | 4 +- Project/ElementPlotData.h | 10 ++-- Project/Project.mk | 2 +- 10 files changed, 196 insertions(+), 16 deletions(-) (limited to 'Project') diff --git a/Project/ChartView.cpp b/Project/ChartView.cpp index 166cdac..a9ac2c6 100644 --- a/Project/ChartView.cpp +++ b/Project/ChartView.cpp @@ -1,7 +1,12 @@ #include "ChartView.h" +#include "ElementPlotData.h" -ChartView::ChartView(wxWindow* parent) : ChartViewBase(parent) +ChartView::ChartView(wxWindow* parent, std::vector epdList, std::vector time) + : ChartViewBase(parent) { + m_epdList = epdList; + m_time = time; + m_menuItemShowGrid->Check(m_hideGrid ? false : true); m_menuItemShowLabel->Check(m_showLeg); m_menuItemShowCoordinates->Check(m_showCoords); @@ -20,8 +25,11 @@ ChartView::ChartView(wxWindow* parent) : ChartViewBase(parent) SetMPWindow(); GetSizer()->Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5)); + SetTreectrl(); Layout(); SetInitialSize(); + + BuildColourList(); } ChartView::~ChartView() {} @@ -58,10 +66,47 @@ void ChartView::SetMPWindow() 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(event.GetPropertyName() == _("Margins")) { m_mpWindow->SetMargins(m_pgPropMarginsUp->GetValue().GetLong(), m_pgPropMarginsRight->GetValue().GetLong(), m_pgPropMarginsBot->GetValue().GetLong(), m_pgPropMarginsLeft->GetValue().GetLong()); @@ -173,3 +218,75 @@ void ChartView::UpdatePlot(bool fit) m_coords->SetBrush(*wxWHITE_BRUSH); } } + +void ChartView::OnTreeItemActivated(wxTreeEvent& event) +{ + PlotData* data = dynamic_cast(m_treeCtrl->GetItemData(event.GetItem())); + + if(data) { + bool isPlotting = data->IsPlot() ? false : true; + data->SetPlot(isPlotting); + m_pgPropDraw->SetValue(data->IsPlot()); + if(isPlotting) { + wxColour colour = GetNextColour(); + wxVariant vColour; + vColour << colour; + //data->SetColour(colour); + m_pgPropColor->SetValue(vColour); + } + UpdatePlot(true); + } + + if(event.GetItem() == m_treeTimeID) { + // AllToYAxis(treeCtrl_ChartSelection->GetRootItem()); + m_treeCtrl->SetItemTextColour(m_treeTimeID, *wxRED); + // xAxisValues = time; + UpdatePlot(true); + } + + event.Skip(); +} + +void ChartView::OnTreeItemSelectionChanged(wxTreeEvent& event) +{ + PlotData* data = dynamic_cast(m_treeCtrl->GetItemData(event.GetItem())); + if(data) { + 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(wxColour(0, 0, 0)); + m_itColourList = m_colourList.end(); +} + +wxColour ChartView::GetNextColour() +{ + if(*m_itColourList == *wxBLACK) + m_itColourList = m_colourList.begin(); + else + ++m_itColourList; + + return *m_itColourList; +} diff --git a/Project/ChartView.h b/Project/ChartView.h index c586fbb..a219608 100644 --- a/Project/ChartView.h +++ b/Project/ChartView.h @@ -5,16 +5,20 @@ #include +class ElementPlotData; + class ChartView : public ChartViewBase { public: - ChartView(wxWindow* parent); + ChartView(wxWindow* parent, std::vector epdList, std::vector 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(); } @@ -25,6 +29,17 @@ class ChartView : public ChartViewBase virtual void OnMenuShowLabelClick(wxCommandEvent& event); virtual void OnPropertyGridChange(wxPropertyGridEvent& event); virtual void SetMPWindow(); + virtual void SetTreectrl(); + virtual void BuildColourList(); + virtual wxColour GetNextColour(); + + wxPGProperty* m_pgPropColor = NULL; + + wxTreeItemId m_treeTimeID; + + std::vector m_epdList; + std::vector m_time; + mpWindow* m_mpWindow = NULL; mpScaleX* m_xaxis = NULL; mpScaleY* m_yaxis = NULL; @@ -37,6 +52,7 @@ class ChartView : public ChartViewBase bool m_showCoords = false; bool m_darkTheme = false; - wxPGProperty* m_pgPropColor = NULL; + std::vector m_colourList; + std::vector::iterator m_itColourList; }; #endif // CHARTVIEW_H diff --git a/Project/ChartView.wxcp b/Project/ChartView.wxcp index 3fe03fd..2f590ee 100644 --- a/Project/ChartView.wxcp +++ b/Project/ChartView.wxcp @@ -790,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", @@ -849,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, diff --git a/Project/ChartViewBase.cpp b/Project/ChartViewBase.cpp index 22a650b..8c2bc32 100644 --- a/Project/ChartViewBase.cpp +++ b/Project/ChartViewBase.cpp @@ -67,7 +67,7 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti 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); + 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)); @@ -183,6 +183,8 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti 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); } @@ -197,6 +199,8 @@ ChartViewBase::~ChartViewBase() 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 index b7d6494..2c7af3c 100644 --- a/Project/ChartViewBase.h +++ b/Project/ChartViewBase.h @@ -83,6 +83,8 @@ protected: 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: diff --git a/Project/ControlEditor.cpp b/Project/ControlEditor.cpp index 927654e..a3ab3d9 100644 --- a/Project/ControlEditor.cpp +++ b/Project/ControlEditor.cpp @@ -14,6 +14,7 @@ #include "Gain.h" #include "ChartView.h" +#include "ElementPlotData.h" ControlElementButton::ControlElementButton(wxWindow* parent, wxString label, wxImage image, wxWindowID id) : wxWindow(parent, id) @@ -617,7 +618,30 @@ void ControlEditor::OnKeyDown(wxKeyEvent& event) { //tests if(event.ControlDown() && event.ShiftDown()) { - ChartView* cView = new ChartView(this); + std::vector time, x2, x3; + for(int i=0; i<100; ++i) { + time.push_back(i); + x2.push_back(std::pow(static_cast(i),2)); + x3.push_back(std::pow(static_cast(i),3)); + } + std::vector epdList; + + ElementPlotData curve1Data(_("Func. polinomiais 1"), ElementPlotData::CT_BUS); + curve1Data.AddData(x2, _("x^2")); + curve1Data.AddData(x3, _("x^3")); + epdList.push_back(curve1Data); + + ElementPlotData curve2Data(_("Func. polinomiais 2"), ElementPlotData::CT_BUS); + curve2Data.AddData(x2, _("x^2")); + curve2Data.AddData(x3, _("x^3")); + epdList.push_back(curve2Data); + + ElementPlotData curve3Data(_("Func. polinomiais 3"), ElementPlotData::CT_SYNC_GENERATOR); + curve3Data.AddData(x2, _("x^2")); + curve3Data.AddData(x3, _("x^3")); + epdList.push_back(curve3Data); + + ChartView* cView = new ChartView(this, epdList, time); cView->Show(); } } diff --git a/Project/ControlEditor.h b/Project/ControlEditor.h index e42b0c0..232ebd8 100644 --- a/Project/ControlEditor.h +++ b/Project/ControlEditor.h @@ -26,6 +26,7 @@ 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 }; diff --git a/Project/ElementPlotData.cpp b/Project/ElementPlotData.cpp index 6639802..0f406a8 100644 --- a/Project/ElementPlotData.cpp +++ b/Project/ElementPlotData.cpp @@ -1,9 +1,9 @@ #include "ElementPlotData.h" -ElementPlotData::ElementPlotData(wxString name, CurveType type) +ElementPlotData::ElementPlotData(wxString name, CurveType curveType) { m_name = name; - m_curveType = type; + m_curveType = curveType; } ElementPlotData::~ElementPlotData() {} diff --git a/Project/ElementPlotData.h b/Project/ElementPlotData.h index 64bc03e..1434664 100644 --- a/Project/ElementPlotData.h +++ b/Project/ElementPlotData.h @@ -40,18 +40,20 @@ class ElementPlotData { public: enum CurveType { - CT_TIME = 0, - CT_BUS, + CT_BUS = 0, CT_SYNC_GENERATOR, CT_SYNC_COMPENSATOR, CT_TRANSFORMER, CT_LINE, CT_IND_MOTOR, - CT_SHUNT_REACTOR, + CT_SHUNT_INDUCTOR, CT_SHUNT_CAPACITOR, CT_LOAD, + NUM_ELEMENTS, + CT_TIME }; - ElementPlotData(wxString name, CurveType type); + ElementPlotData() {}; + ElementPlotData(wxString name, CurveType curveType); ~ElementPlotData(); wxString GetName() const { return m_name; } diff --git a/Project/Project.mk b/Project/Project.mk index b374fd4..3125163 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=NDSE-69 -Date :=26/04/2017 +Date :=27/04/2017 CodeLitePath :="C:/Program Files/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC -- cgit From fb34d58e810ca4d9c886a0d4f9f2ae24cf45dbf9 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Wed, 3 May 2017 19:15:52 -0300 Subject: Chart view implemented --- Project/ChartView.cpp | 186 ++++++++++++++++++++++++++++++++++++++++++---- Project/ChartView.h | 7 ++ Project/ChartView.wxcp | 4 +- Project/ChartViewBase.cpp | 6 -- Project/ControlEditor.cpp | 20 ++--- Project/Project.mk | 2 +- Project/main.cpp | 3 +- 7 files changed, 192 insertions(+), 36 deletions(-) (limited to 'Project') diff --git a/Project/ChartView.cpp b/Project/ChartView.cpp index a9ac2c6..199060a 100644 --- a/Project/ChartView.cpp +++ b/Project/ChartView.cpp @@ -6,6 +6,7 @@ ChartView::ChartView(wxWindow* parent, std::vector epdList, std { m_epdList = epdList; m_time = time; + m_xAxisValues = time; m_menuItemShowGrid->Check(m_hideGrid ? false : true); m_menuItemShowLabel->Check(m_showLeg); @@ -23,12 +24,20 @@ ChartView::ChartView(wxWindow* parent, std::vector epdList, std m_pgPropAxisLimit->SetValue(wxT("")); 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(); } @@ -107,6 +116,40 @@ void ChartView::OnPropertyGridChange(wxPropertyGridEvent& event) { bool fit = false; + if(m_treeCtrl->GetSelection()) { + if(PlotData* data = dynamic_cast(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(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(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()); @@ -138,8 +181,69 @@ void ChartView::OnMenuDarkThemeClick(wxCommandEvent& event) m_mpWindow->UpdateAll(); } -void ChartView::OnMenuSaveImageClick(wxCommandEvent& event) {} -void ChartView::OnMenuSendClipClick(wxCommandEvent& event) {} +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(); @@ -181,6 +285,7 @@ void ChartView::UpdatePlot(bool fit) 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); @@ -221,26 +326,22 @@ void ChartView::UpdatePlot(bool fit) void ChartView::OnTreeItemActivated(wxTreeEvent& event) { - PlotData* data = dynamic_cast(m_treeCtrl->GetItemData(event.GetItem())); - - if(data) { + if(PlotData* data = dynamic_cast(m_treeCtrl->GetItemData(event.GetItem()))) { bool isPlotting = data->IsPlot() ? false : true; data->SetPlot(isPlotting); m_pgPropDraw->SetValue(data->IsPlot()); if(isPlotting) { wxColour colour = GetNextColour(); - wxVariant vColour; - vColour << colour; - //data->SetColour(colour); - m_pgPropColor->SetValue(vColour); + data->SetColour(colour); + m_pgPropColor->SetValue(static_cast(colour)); } UpdatePlot(true); } if(event.GetItem() == m_treeTimeID) { - // AllToYAxis(treeCtrl_ChartSelection->GetRootItem()); + AllToYAxis(m_treeCtrl->GetRootItem()); m_treeCtrl->SetItemTextColour(m_treeTimeID, *wxRED); - // xAxisValues = time; + m_xAxisValues = m_time; UpdatePlot(true); } @@ -249,8 +350,7 @@ void ChartView::OnTreeItemActivated(wxTreeEvent& event) void ChartView::OnTreeItemSelectionChanged(wxTreeEvent& event) { - PlotData* data = dynamic_cast(m_treeCtrl->GetItemData(event.GetItem())); - if(data) { + if(PlotData* data = dynamic_cast(m_treeCtrl->GetItemData(event.GetItem()))) { m_pgPropDraw->SetValue(data->IsPlot()); wxVariant colour; colour << data->GetColour(); @@ -277,8 +377,8 @@ void ChartView::BuildColourList() 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(wxColour(0, 0, 0)); - m_itColourList = m_colourList.end(); + m_colourList.push_back(*wxBLACK); + m_itColourList = --m_colourList.end(); } wxColour ChartView::GetNextColour() @@ -290,3 +390,57 @@ wxColour ChartView::GetNextColour() 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(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(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 index a219608..b40a63d 100644 --- a/Project/ChartView.h +++ b/Project/ChartView.h @@ -4,6 +4,10 @@ #include "wxMathPlot/mathplot.h" #include +#include +#include +#include +#include class ElementPlotData; @@ -32,6 +36,8 @@ class ChartView : public ChartViewBase virtual void SetTreectrl(); virtual void BuildColourList(); virtual wxColour GetNextColour(); + virtual wxTreeItemId AllToYAxis(wxTreeItemId root); + virtual wxTreeItemId UpdateAllPlots(wxTreeItemId root); wxPGProperty* m_pgPropColor = NULL; @@ -39,6 +45,7 @@ class ChartView : public ChartViewBase std::vector m_epdList; std::vector m_time; + std::vector m_xAxisValues; mpWindow* m_mpWindow = NULL; mpScaleX* m_xaxis = NULL; diff --git a/Project/ChartView.wxcp b/Project/ChartView.wxcp index 2f590ee..c1d3cfc 100644 --- a/Project/ChartView.wxcp +++ b/Project/ChartView.wxcp @@ -1177,11 +1177,11 @@ }, { "type": "string", "m_label": "String Value", - "m_value": "1" + "m_value": "" }, { "type": "multi-string", "m_label": "Choices:", - "m_value": "Solid;Dot;Dash;Dot and dash;Cross;Diagonal cross" + "m_value": "" }, { "type": "multi-string", "m_label": "Array Integer Values", diff --git a/Project/ChartViewBase.cpp b/Project/ChartViewBase.cpp index 8c2bc32..4b33d5c 100644 --- a/Project/ChartViewBase.cpp +++ b/Project/ChartViewBase.cpp @@ -93,12 +93,6 @@ ChartViewBase::ChartViewBase(wxWindow* parent, wxWindowID id, const wxString& ti m_pgMgrArr.Clear(); m_pgMgrIntArr.Clear(); - m_pgMgrArr.Add(_("Solid")); - m_pgMgrArr.Add(_("Dot")); - m_pgMgrArr.Add(_("Dash")); - m_pgMgrArr.Add(_("Dot and dash")); - m_pgMgrArr.Add(_("Cross")); - m_pgMgrArr.Add(_("Diagonal cross")); 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") ); diff --git a/Project/ControlEditor.cpp b/Project/ControlEditor.cpp index a3ab3d9..a9d0213 100644 --- a/Project/ControlEditor.cpp +++ b/Project/ControlEditor.cpp @@ -618,27 +618,27 @@ void ControlEditor::OnKeyDown(wxKeyEvent& event) { //tests if(event.ControlDown() && event.ShiftDown()) { - std::vector time, x2, x3; - for(int i=0; i<100; ++i) { + std::vector time, sinC, cosC, tgC; + for(int i=0; i<360; ++i) { time.push_back(i); - x2.push_back(std::pow(static_cast(i),2)); - x3.push_back(std::pow(static_cast(i),3)); + sinC.push_back(std::sin(wxDegToRad(i))); + cosC.push_back(std::cos(wxDegToRad(i))); + tgC.push_back(std::tan(wxDegToRad(i))); } std::vector epdList; ElementPlotData curve1Data(_("Func. polinomiais 1"), ElementPlotData::CT_BUS); - curve1Data.AddData(x2, _("x^2")); - curve1Data.AddData(x3, _("x^3")); + curve1Data.AddData(sinC, _("seno")); epdList.push_back(curve1Data); ElementPlotData curve2Data(_("Func. polinomiais 2"), ElementPlotData::CT_BUS); - curve2Data.AddData(x2, _("x^2")); - curve2Data.AddData(x3, _("x^3")); + curve2Data.AddData(tgC, _("tangente")); epdList.push_back(curve2Data); ElementPlotData curve3Data(_("Func. polinomiais 3"), ElementPlotData::CT_SYNC_GENERATOR); - curve3Data.AddData(x2, _("x^2")); - curve3Data.AddData(x3, _("x^3")); + curve3Data.AddData(sinC, _("seno")); + curve3Data.AddData(cosC, _("cosseno")); + curve3Data.AddData(tgC, _("tangente")); epdList.push_back(curve3Data); ChartView* cView = new ChartView(this, epdList, time); diff --git a/Project/Project.mk b/Project/Project.mk index 3125163..c43d7d9 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=NDSE-69 -Date :=27/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 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); -- cgit