wxMaxima
Loading...
Searching...
No Matches
GenWizPanel.h
1// -*- mode: c++; c-file-style: "linux"; c-basic-offset: 2; indent-tabs-mode: nil -*-
2//
3// Copyright (C) 2004-2015 Andrej Vodopivec <andrej.vodopivec@gmail.com>
4// Copyright (C) 2017-2018 Gunter Königsmann <wxMaxima@physikbuch.de>
5//
6// This program is free software; you can redistribute it and/or modify
7// it under the terms of the GNU General Public License as published by
8// the Free Software Foundation; either version 2 of the License, or
9// (at your option) any later version.
10//
11// This program is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15//
16//
17// You should have received a copy of the GNU General Public License
18// along with this program; if not, write to the Free Software
19// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20//
21// SPDX-License-Identifier: GPL-2.0+
22
23#ifndef GENWIZ_PANEL_H
24#define GENWIZ_PANEL_H
25
26#include "precomp.h"
27#include <wx/wx.h>
28#include <wx/statline.h>
29#include <vector>
30#include <wx/cshelp.h>
31#include "../BTextCtrl.h"
32#include <wx/notebook.h>
33#include "MaximaManual.h"
34#include <wx/hashmap.h>
35#include <unordered_map>
36
37
42class GenWizPanel : public wxPanel
43{
44public:
45 GenWizPanel(wxWindow *parent, Configuration *cfg, MaximaManual *manual,
46 const wxString &description, const wxString &description_tooltip,
47 const wxString &commandRule,
48 const wxString &label1, const wxString &defaultval1, const wxString &tooltip1 = {},
49 const wxString &label2 = {}, const wxString &defaultval2 = {}, const wxString &tooltip2 = {},
50 const wxString &label3 = {}, const wxString &defaultval3 = {}, const wxString &tooltip3 = {},
51 const wxString &label4 = {}, const wxString &defaultval4 = {}, const wxString &tooltip4 = {},
52 const wxString &label5 = {}, const wxString &defaultval5 = {}, const wxString &tooltip5 = {},
53 const wxString &label6 = {}, const wxString &defaultval6 = {}, const wxString &tooltip6 = {},
54 const wxString &label7 = {}, const wxString &defaultval7 = {}, const wxString &tooltip7 = {},
55 const wxString &label8 = {}, const wxString &defaultval8 = {}, const wxString &tooltip8 = {},
56 const wxString &label9 = {}, const wxString &defaultval9 = {}, const wxString &tooltip9 = {},
57 const wxString &label10 = {}, const wxString &defaultval10 = {}, const wxString &tooltip10 = {});
58
59 GenWizPanel(wxWindow *parent, Configuration *cfg, MaximaManual *manual,
60 const wxString &description = {}, const wxString &description_tooltip = {},
61 const wxString &commandRule = {}, bool dockable = true,
62 const wxString &label1 = {}, const wxString &defaultval1 = {}, const wxString &tooltip1 = {},
63 const wxString &label2 = {}, const wxString &defaultval2 = {}, const wxString &tooltip2 = {},
64 const wxString &label3 = {}, const wxString &defaultval3 = {}, const wxString &tooltip3 = {},
65 const wxString &label4 = {}, const wxString &defaultval4 = {}, const wxString &tooltip4 = {},
66 const wxString &label5 = {}, const wxString &defaultval5 = {}, const wxString &tooltip5 = {},
67 const wxString &label6 = {}, const wxString &defaultval6 = {}, const wxString &tooltip6 = {},
68 const wxString &label7 = {}, const wxString &defaultval7 = {}, const wxString &tooltip7 = {},
69 const wxString &label8 = {}, const wxString &defaultval8 = {}, const wxString &tooltip8 = {},
70 const wxString &label9 = {}, const wxString &defaultval9 = {}, const wxString &tooltip9 = {},
71 const wxString &label10 = {}, const wxString &defaultval10 = {}, const wxString &tooltip10 = {});
72
74 void NewWizard(wxString description, const wxString &description_tooltip,
75 const wxString &commandRule,
76 const wxString &label1, const wxString &defaultval1, const wxString &tooltip1,
77 const wxString &label2, const wxString &defaultval2, const wxString &tooltip2,
78 const wxString &label3, const wxString &defaultval3, const wxString &tooltip3,
79 const wxString &label4, const wxString &defaultval4, const wxString &tooltip4,
80 const wxString &label5, const wxString &defaultval5, const wxString &tooltip5,
81 const wxString &label6, const wxString &defaultval6, const wxString &tooltip6,
82 const wxString &label7, const wxString &defaultval7, const wxString &tooltip7,
83 const wxString &label8, const wxString &defaultval8, const wxString &tooltip8,
84 const wxString &label9, const wxString &defaultval9, const wxString &tooltip9,
85 const wxString &label10, const wxString &defaultval10, const wxString &tooltip10);
86
88 wxString operator[](int i) const { return m_textctrl[i]->GetValue(); }
89
91 wxString GetOutput() const {return m_output->GetValue();}
92
93#if defined __WXMSW__
94 wxButton *GetOKButton() const {return button_1;}
95 wxButton *GetAbortButton() const {return button_2;}
96#else
97 wxButton *GetOKButton() const {return button_2;}
98 wxButton *GetAbortButton() const {return button_1;}
99#endif
100 wxButton *GetInsertButton() const{return m_insertButton;}
101 wxString GetHelpKeyword(wxWindowID ID);
102 virtual ~GenWizPanel();
103protected:
104 typedef std::unordered_map <wxString, int, wxStringHash> keywordHash;
105
106 void OnSize(wxSizeEvent &event);
107 wxNotebook *m_notebook;
108 void UpdateOutput();
109 void OnParamChange(wxCommandEvent& event);
110 void OnTextEnter(wxCommandEvent& event);
111 void OnNotebookPageChange(wxBookCtrlEvent& event);
112
113 std::vector<BTextCtrl*> m_textctrl;
114 std::vector<wxStaticText *> m_label;
115 wxButton *button_1;
116 wxButton *button_2;
117 wxContextHelpButton *m_helpButton = NULL;
118 wxButton *m_insertButton;
119 wxString m_commandRule;
120 wxTextCtrl *m_output;
121 wxString m_description;
122 wxString m_descriptionToolTip;
123 wxString m_title;
124 Configuration *m_configuration;
125 MaximaManual *m_maximaManual;
126private:
127 int m_topicButtonID0;
128 std::vector<wxWindowIDRef> m_topicButtonIDs;
129 bool m_ignorePageChange = true;
130 keywordHash m_manualKeywords;
131};
132
133#endif // GENWIZ_PANEL_H
This file declares the class MaximaManual.
The configuration storage for the current worksheet.
Definition: Configuration.h:84
A dockable, embeddable generic wizard.
Definition: GenWizPanel.h:43
wxString GetOutput() const
Returns the command the wizard has generated, if commandRule wasn't empty.
Definition: GenWizPanel.h:91
wxString operator[](int i) const
Returns the contents of the nth field.
Definition: GenWizPanel.h:88
void NewWizard(wxString description, const wxString &description_tooltip, const wxString &commandRule, const wxString &label1, const wxString &defaultval1, const wxString &tooltip1, const wxString &label2, const wxString &defaultval2, const wxString &tooltip2, const wxString &label3, const wxString &defaultval3, const wxString &tooltip3, const wxString &label4, const wxString &defaultval4, const wxString &tooltip4, const wxString &label5, const wxString &defaultval5, const wxString &tooltip5, const wxString &label6, const wxString &defaultval6, const wxString &tooltip6, const wxString &label7, const wxString &defaultval7, const wxString &tooltip7, const wxString &label8, const wxString &defaultval8, const wxString &tooltip8, const wxString &label9, const wxString &defaultval9, const wxString &tooltip9, const wxString &label10, const wxString &defaultval10, const wxString &tooltip10)
Replace the contents of this panel with a new wizard.
Definition: GenWizPanel.cpp:153
Definition: MaximaManual.h:59