32 extern unsigned int view_refresh_svg_gz_len;
33 extern unsigned char view_refresh_svg_gz[];
39 #include <wx/hashmap.h>
41 #include <wx/propdlg.h>
42 #include <wx/generic/propdlg.h>
43 #include <wx/spinctrl.h>
44 #include <wx/notebook.h>
46 #include <wx/imaglist.h>
47 #include <wx/bookctrl.h>
48 #include <wx/artprov.h>
50 #ifndef CONFIGDIALOGUE_H
51 #define CONFIGDIALOGUE_H
54 #include "Configuration.h"
110 const int mMinPanelWidth = 640;
111 const int mMinPanelHeight = 720;
127 GCL_MULTIPROCESS_MEMORY_POOL,
132 std::unique_ptr<
struct NSVGrasterizer, decltype(std::free)*> m_svgRast{
nullptr, std::free};
136 WX_DECLARE_STRING_HASH_MAP(wxString, StringHash);
137 WX_DECLARE_STRING_HASH_MAP(
long, Languages);
138 Languages m_languages;
143 class ExamplePanel :
public wxPanel
147 ExamplePanel(wxWindow *parent,
int id, wxPoint pos, wxSize size) : wxPanel(parent, id, pos, size)
148 { Connect(wxEVT_PAINT, wxPaintEventHandler(ConfigDialogue::ExamplePanel::OnPaint)); };
151 void SetStyle(
const Style &style)
153 if (m_style.IsStyleEqualTo(style))
return;
163 void OnPaint(wxPaintEvent &event);
173 class ColorPanel :
public wxPanel
177 int id, wxPoint pos, wxSize size,
long style);
179 void OnPaint(wxPaintEvent &WXUNUSED(event));
181 void OnClick(wxMouseEvent& WXUNUSED(event));
183 void SetColor(wxColor color)
198 void SetCheckboxValues();
204 wxBitmap GetImage(wxString name,
205 unsigned char *data,
size_t len);
208 wxWindow *CreateClipboardPanel();
211 wxWindow *CreateRevertToDefaultsPanel();
213 wxCheckBox *m_copyBitmap, *m_copyMathML, *m_copyMathMLHTML, *m_copyRTF, *m_copySVG;
214 #if wxUSE_ENH_METAFILE
215 wxCheckBox *m_copyEMF;
219 wxWindow *CreateWorksheetPanel();
222 wxWindow *CreateOptionsPanel();
225 wxWindow *CreateExportPanel();
228 wxWindow *CreateStylePanel();
231 wxWindow *CreateMaximaPanel();
234 wxWindow *CreateStartupPanel();
237 wxGrid *m_maximaEnvVariables;
238 void OnImport(wxCommandEvent& event);
239 static void CopyConfig(wxConfigBase *src, wxConfigBase *dst, wxString dir = wxT(
"/"));
240 void OnReloadAll(wxCommandEvent& event);
241 void OnReloadStyles(wxCommandEvent& event);
242 void OnResetAllToDefaults(wxCommandEvent& event);
243 void OnExportAll(wxCommandEvent& event);
244 void OnResetStyles(wxCommandEvent& event);
245 void OnChangeMaximaEnvVar(wxGridEvent& event);
246 void OnMaximaEnvRightClick(wxGridEvent& event);
247 void OnMouseMotion_MaximaEnv(wxMouseEvent &event);
248 void OnNewEnvMenu(wxCommandEvent &event);
249 void OnClickMaximaEnvVal(
int row);
250 void OnChangeMaximaCellClick(wxGridEvent& event);
258 StringHash m_maximaEnvDoc;
263 wxRadioButton *m_autodetectHelpBrowser;
264 wxRadioButton *m_noAutodetectHelpBrowser;
280 wxTextCtrl *m_maximaUserLocation;
281 wxTextCtrl *m_helpBrowserUserLocation;
282 wxTextCtrl *m_documentclass;
283 wxTextCtrl *m_documentclassOptions;
284 wxTextCtrl *m_texPreamble;
285 wxCheckBox *m_autoSave;
286 wxButton *m_mpBrowse;
287 wxButton *m_wxMathMLBrowse;
288 wxTextCtrl *m_additionalParameters;
289 wxTextCtrl *m_mathJaxURL;
290 wxChoice *m_language;
291 wxTextCtrl *m_symbolPaneAdditionalChars;
292 wxCheckBox *m_abortOnError;
293 wxCheckBox *m_offerKnownAnswers;
294 wxCheckBox *m_restartOnReEvaluation;
295 wxCheckBox *m_wrapLatexMath;
296 wxCheckBox *m_usesvg;
297 wxCheckBox *m_antialiasLines;
298 wxSpinCtrl *m_defaultFramerate;
299 wxSpinCtrl *m_defaultPlotWidth;
300 wxSpinCtrl *m_defaultPlotHeight;
301 wxSpinCtrl *m_displayedDigits;
302 wxRadioButton *m_displayNDigits;
303 wxRadioButton *m_displayAllDigits;
304 wxRadioButton *m_linebreaksInLongNums;
305 wxRadioButton *m_automaticWxMathML;
306 wxRadioButton *m_userWxMathML;
307 wxSpinCtrl *m_maxClipbrdBitmapMegabytes;
308 wxTextCtrl *m_wxMathMLLocation;
315 wxCheckBox *m_printBrackets;
316 wxChoice *m_exportWithMathJAX;
317 wxCheckBox *m_matchParens;
318 wxCheckBox *m_showMatchingParens;
319 wxChoice *m_showLength;
320 wxChoice *m_autosubscript;
321 wxRadioButton *m_enterEvaluates;
322 wxRadioButton *m_ctrlEnterEvaluates;
323 wxCheckBox *m_numpadEnterEvaluates;
324 wxCheckBox *m_saveImgFileName;
325 wxCheckBox *m_saveUntitled;
326 wxCheckBox *m_openHCaret;
327 wxCheckBox *m_insertAns;
328 wxCheckBox *m_autoIndent;
329 wxCheckBox *m_cursorJump;
330 wxCheckBox *m_hideBrackets;
331 wxCheckBox *m_indentMaths;
332 wxChoice *m_autoWrap;
333 wxSpinCtrl *m_labelWidth;
334 wxSpinCtrl *m_undoLimit;
335 wxSpinCtrl *m_recentItems;
336 wxSpinCtrl *m_bitmapScale;
337 wxSpinCtrlDouble *m_printScale;
338 wxCheckBox *m_fixReorderedIndices;
339 wxCheckBox *m_incrementalSearch;
340 wxCheckBox *m_notifyIfIdle;
341 wxChoice *m_showUserDefinedLabels;
342 wxButton *m_getDefaultFont;
343 wxButton *m_getMathFont;
344 wxButton *m_getStyleFont;
345 wxListBox *m_styleFor;
348 wxCheckBox *m_boldCB;
349 wxCheckBox *m_italicCB;
350 wxCheckBox *m_underlinedCB;
351 wxCheckBox *m_fixedFontInTC;
352 wxCheckBox *m_unixCopy;
353 wxCheckBox *m_changeAsterisk;
354 wxCheckBox *m_hidemultiplicationSign;
355 wxCheckBox *m_latin2Greek;
356 wxCheckBox *m_useUnicodeMaths;
357 wxCheckBox *m_keepPercentWithSpecials;
358 wxBookCtrlBase *m_notebook;
359 wxButton *m_saveStyle, *m_loadStyle;
360 wxSpinCtrl *m_defaultPort;
361 ExamplePanel *m_examplePanel;
362 wxSpinCtrl *m_maxGnuplotMegabytes;
363 wxSpinCtrl *m_autosaveMinutes;
364 wxTextCtrl *m_autoMathJaxURL;
365 int m_maximaEmvRightClickRow = 0;
373 void OnClose(wxCloseEvent &event);
378 void OnwxMathMLBrowse(wxCommandEvent &event);
380 void OnHelpBrowserBrowse(wxCommandEvent& event);
382 void OnIdle(wxIdleEvent &event);
403 void LoadSave(wxCommandEvent &event);