21#include <wx/textfile.h>
22#include <wx/stdpaths.h>
24PropertiesData::PropertiesData() { SetGUIColourTheme(); }
25PropertiesData::~PropertiesData() {}
27void PropertiesData::SetGUIColourTheme()
29 if (m_genData.theme == THEME_LIGHT)
31 m_guiColour.background = wxColour(250, 249, 246);
33 m_guiColour.text = wxColour(35, 35, 35);
34 m_guiColour.enabled = wxColour(20, 20, 20);
35 m_guiColour.disable = wxColour(145, 145, 145);
37 m_guiColour.selection = wxColour(40, 120, 255, 90);
38 m_guiColour.altSelection = wxColour(40, 200, 70, 90);
40 m_guiColour.bus = wxColour(40, 105, 235);
41 m_guiColour.slackBus = wxColour(40, 105, 235);
43 m_guiColour.eventElement = wxColour(255, 120, 0);
44 m_guiColour.pfArrow = wxColour(255, 120, 0);
46 m_guiColour.swClose = wxColour(35, 150, 45);
47 m_guiColour.swOpen = wxColour(225, 55, 55);
48 m_guiColour.grid = wxColour(220, 222, 225);
50 else if (m_genData.theme == THEME_DARK)
52 m_guiColour.background = wxColour(43, 46, 52);
54 m_guiColour.text = wxColour(205, 210, 215);
55 m_guiColour.enabled = wxColour(220, 224, 228);
56 m_guiColour.disable = wxColour(125, 130, 136);
58 m_guiColour.selection = wxColour(70, 140, 255, 90);
59 m_guiColour.altSelection = wxColour(70, 200, 90, 90);
61 m_guiColour.bus = wxColour(70, 135, 255);
62 m_guiColour.slackBus = wxColour(95, 155, 255);
64 m_guiColour.eventElement = wxColour(240, 165, 60);
65 m_guiColour.pfArrow = wxColour(240, 165, 60);
67 m_guiColour.swClose = wxColour(60, 180, 70);
68 m_guiColour.swOpen = wxColour(235, 85, 85);
69 m_guiColour.grid = wxColour(60, 64, 72);
72 if (m_genData.voltageLevels.empty()) {
73 m_genData.voltageLevels = GetDefaultVoltageLevels();
75 m_guiColour.voltageLevels = m_genData.voltageLevels;
76 m_guiColour.useVoltageLevels = m_genData.useBusVoltageColours;
79std::vector<VoltageLevelColour> PropertiesData::GetDefaultVoltageLevels()
82 { 500.0, wxColour(198, 40, 40) },
83 { 440.0, wxColour(224, 90, 42) },
84 { 345.0, wxColour(242, 177, 52) },
85 { 230.0, wxColour(67, 176, 92) },
86 { 138.0, wxColour(40, 105, 235) },
87 { 69.0, wxColour(0, 180, 220) },
88 { 34.5, wxColour(0, 106, 106) },
89 { 13.8, wxColour(94, 53, 177) },
90 { 4.16, wxColour(158, 62, 172) },
91 { 0.38, wxColour(151, 132, 208) }
95void PropertiesData::SetGeneralPropertiesData(
GeneralData generalData)
97 m_genData = generalData;
98 if (m_genData.voltageLevels.empty()) {
99 m_genData.voltageLevels = GetDefaultVoltageLevels();
101 m_guiColour.voltageLevels = m_genData.voltageLevels;
104bool PropertiesData::SaveConfigFile(
const GeneralData& data)
106 wxFileName fn(wxStandardPaths::Get().GetDocumentsDir() + wxFileName::GetPathSeparator() +
"PSP-UFU" + wxFileName::GetPathSeparator() +
"config.ini");
107 if (!fn.DirExists()) {
110 wxTextFile file(fn.GetFullPath());
111 if (!file.Create()) {
118 wxString line =
"lang=";
119 switch (data.language) {
120 case wxLANGUAGE_PORTUGUESE_BRAZILIAN:
123 case wxLANGUAGE_ENGLISH:
131 switch (data.plotLib) {
132 case PlotLib::wxMATH_PLOT:
135 case PlotLib::wxCHART_DIR:
143 switch (data.theme) {
154 line =
"labelfont=" + data.labelFont;
157 line = wxString::Format(
"labelfontsize=%d", data.labelFontSize);
160 line =
"atpfile=" + data.atpPath.GetFullPath();
163 line = wxString(
"elementstoolbar=");
164 switch (data.elementsToolbar) {
172 line +=
"horizontal";
180 line = wxString(
"usevoltagebuscolours=") + (data.useBusVoltageColours ?
"yes" :
"no");
183 if (!data.voltageLevels.empty()) {
184 line =
"voltage_levels=";
185 for (
size_t i = 0; i < data.voltageLevels.size(); ++i) {
186 if (i > 0) line +=
";";
187 line += wxString::Format(
"%s:%s", wxString::FromCDouble(data.voltageLevels[i].voltage), data.voltageLevels[i].colour.GetAsString(wxC2S_HTML_SYNTAX));