36#include "WXMXformat.h"
42#include <wx/process.h>
45#include <wx/txtstrm.h>
46#include <wx/sckstrm.h>
49#include <wx/debugrpt.h>
54#include <unordered_map>
57#define MAXIMAPOLLMSECS 2000
67 wxMaxima(wxWindow *parent,
int id,
const wxString &title,
68 const wxString &filename = wxEmptyString,
69 const wxString &initialWorksheetContents = wxEmptyString,
70 const wxPoint pos = wxDefaultPosition,
const wxSize size = wxDefaultSize);
73 wxString EscapeFilenameForShell(wxString name);
101#ifdef wxHAS_POWER_EVENTS
102 void OnPowerEvent(wxPowerEvent &event);
115 m_evalOnStartup = eval;
121 m_exitAfterEval = exitaftereval;
133 void SendMaxima(wxString s,
bool addToHistory =
false);
136 bool OpenFile(
const wxString &file,
const wxString &command ={});
140 {
return m_fileSaved; }
144 { GetWorksheet()->
OpenHCaret(file, GC_TYPE_IMAGE); }
154 long Major()
const {
return m_major;}
155 long Minor()
const {
return m_minor;}
156 long Patchlevel()
const {
return m_patchlevel;}
162 long m_patchlevel = -1;
167 {maxima_command_line_filename = filename;}
171 static int GetExitCode(){
return m_exitCode;}
175 static wxString maxima_command_line_filename;
177 bool m_maximaAuthenticated =
false;
179 bool m_discardAllData =
false;
181 wxString m_maximaAuthString;
185 static bool m_exitOnError;
187 static wxString m_extraMaximaArgs;
189 std::vector<wxString> m_varNamesToQuery;
192 bool m_openInitialFileError =
false;
194 wxString EscapeForLisp(wxString str);
196 long long m_maximaJiffies_old = 0;
198 long long m_cpuTotalJiffies_old = 0;
201 wxString m_configCommands;
203 static wxRegEx m_gnuplotErrorRegex;
207 wxString m_oldFindString;
209 int m_oldFindFlags = 0;
211 bool m_hasEvaluatedCells =
false;
213 long m_outputCellsFromCurrentCommand = 0;
215 long m_maxOutputCellsPerCommand = 0;
222 int m_unsuccessfulConnectionAttempts = 11;
226 bool m_evalOnStartup =
false;
228 bool m_exitAfterEval =
false;
230 bool m_ready =
false;
236 wxString GetUnmatchedParenthesisState(wxString text, std::size_t &index);
238 wxMemoryBuffer m_uncompletedChars;
243 const wxString &description,
const wxString &description_tooltip,
244 const wxString &commandRule,
245 wxString label1, wxString defaultval1, wxString tooltip1 = {},
246 wxString label2 = {}, wxString defaultval2 = {}, wxString tooltip2 = {},
247 wxString label3 = {}, wxString defaultval3 = {}, wxString tooltip3 = {},
248 wxString label4 = {}, wxString defaultval4 = {}, wxString tooltip4 = {},
249 wxString label5 = {}, wxString defaultval5 = {}, wxString tooltip5 = {},
250 wxString label6 = {}, wxString defaultval6 = {}, wxString tooltip6 = {},
251 wxString label7 = {}, wxString defaultval7 = {}, wxString tooltip7 = {},
252 wxString label8 = {}, wxString defaultval8 = {}, wxString tooltip8 = {},
253 wxString label9 = {}, wxString defaultval9 = {}, wxString tooltip9 = {}
269 void OnFocus(wxFocusEvent &event);
282 void OnFollow(wxCommandEvent &event);
283 void OnWizardAbort(wxCommandEvent &event);
284 void OnWizardOK(wxCommandEvent &event);
285 void OnWizardInsert(wxCommandEvent &event);
286 void OnWizardHelpButton(wxCommandEvent &event);
298 void ShowHelp(
const wxString &keyword);
300 void CheckForUpdates(
bool reportUpToDate =
false);
302 void OnRecentDocument(wxCommandEvent &event);
303 void OnRecentPackage (wxCommandEvent &event);
304 void OnUnsavedDocument(wxCommandEvent &event);
306 void OnChar(wxKeyEvent &event);
307 void OnKeyDown(wxKeyEvent &event);
335 void OnIdle(wxIdleEvent &event);
336 bool m_dataFromMaximaIs =
false;
339 void FileMenu(wxCommandEvent &event);
346 void PlotMenu(wxCommandEvent &event);
347 void ListMenu(wxCommandEvent &event);
348 void DrawMenu(wxCommandEvent &event);
350 void HelpMenu(wxCommandEvent &event);
351 void EditMenu(wxCommandEvent &event);
361 void ShowPane(wxCommandEvent &event);
362 void OnMaximaClose(wxProcessEvent &event);
363 void OnMaximaClose();
364 void OnGnuplotClose(wxProcessEvent &event);
365 void OnGnuplotQueryTerminals(wxProcessEvent &event);
366 void PopupMenu(wxCommandEvent &event);
367 void StatsMenu(wxCommandEvent &event);
373 void OnFind(wxFindDialogEvent &event);
376 void OnReplace(wxFindDialogEvent &event);
407 enum AppendOpt { NewLine = 1, BigSkip = 2, PromptToolTip = 4, DefaultOpt = NewLine|BigSkip };
408 void DoConsoleAppend(wxString s,
CellType type, AppendOpt opts = AppendOpt::DefaultOpt,
409 const wxString &userLabel = {});
427 void InsertMenu(wxCommandEvent &event);
430 void SliderEvent(wxScrollEvent &event);
445 void OnInspectorEvent(wxCommandEvent &ev);
447 void DumpProcessOutput();
452 void TryUpdateInspector();
454 bool UpdateDrawPane();
456 wxString ExtractFirstExpression(
const wxString &entry);
458 wxString GetDefaultEntry();
472 void OnClose(wxCloseEvent &event);
523 void ReadMath(
const wxXmlDocument &xml);
531 void ReadLoadSymbols(
const wxXmlDocument &data);
607 wxString m_maximaVariable_wxSubscripts;
608 wxString m_maximaVariable_lmxchar;
609 wxString m_maximaVariable_display2d;
610 wxString m_maximaVariable_altdisplay2d;
611 wxString m_maximaVariable_engineeringFormat;
612 bool m_readMaximaVariables =
false;
613 bool m_updateAutocompletion =
true;
654 void ResetTitle(
bool saved,
bool force =
false);
675 std::unique_ptr<GroupCell>
CreateTreeFromXMLNode(wxXmlNode *xmlcells,
const wxString &wxmxfilename = {});
682 bool SaveFile(
bool forceSave =
false);
702 void SetCWD(wxString file);
710 std::unique_ptr<Maxima> m_client;
717 void operator()(wxSocketServer* server)
const {
727 std::unique_ptr<wxSocketServer, ServerDeleter>
m_server;
729 wxProcess *m_maximaProcess = NULL;
751 void QuestionAnswered(){
if(GetWorksheet()) GetWorksheet()->
QuestionAnswered();}
761 void OnSize(wxSizeEvent &event);
762 void OnMove(wxMoveEvent &event);
763 void OnMaximize(wxCommandEvent &event);
770 wxWindowIDRef m_gnuplot_process_id;
771 wxWindowIDRef m_maxima_process_id;
772 wxString m_lastPrompt;
774 std::unique_ptr<wxPrintData> m_printData;
782 wxString m_maximaHtmlDir;
783 bool m_fileSaved =
true;
784 static int m_exitCode;
790 static wxRegEx m_funRegEx;
791 static wxRegEx m_varRegEx;
792 static wxRegEx m_blankStatementRegEx;
793 static wxRegEx m_sbclCompilationRegEx;
795 bool m_maximaBusy =
true;
797 bool m_fourierLoaded =
false;
799 wxString m_logexpand;
801 typedef void (
wxMaxima::*VarReadFunction)(
const wxString &value);
802 typedef void (
wxMaxima::*VarUndefinedFunction)();
803 typedef std::unordered_map <wxString, VarReadFunction, wxStringHash> VarReadFunctionHash;
804 typedef std::unordered_map <wxString, VarUndefinedFunction,
805 wxStringHash> VarUndefinedFunctionHash;
807 static VarReadFunctionHash m_variableReadActions;
809 static VarUndefinedFunctionHash m_variableUndefinedActions;
811#if wxUSE_DRAG_AND_DROP
813 friend class MyDropTarget;
828 wxTimer m_autoSaveTimer;
835 wxTimer m_fastResponseTimer;
838 void StartAutoSaveTimer();
841#if wxUSE_DRAG_AND_DROP
844class MyApp :
public wxApp
847 virtual bool OnInit();
849 virtual int OnExit();
850#if wxUSE_ON_FATAL_EXCEPTION && wxUSE_CRASHREPORT
851 void OnFatalException ()
override;
866 static void NewWindow(
const wxString &file = {},
bool evalOnStartup =
false,
bool exitAfterEval =
false,
unsigned char *wxmData = NULL, std::size_t wxmLen = 0);
868 void OnFileMenu(wxCommandEvent &ev);
870 virtual void MacNewFile();
871 void BecomeLogTarget();
873 virtual void MacOpenFile(
const wxString &file);
876 static std::vector<wxProcess *> m_wxMaximaProcesses;
877#if wxUSE_ON_FATAL_EXCEPTION && wxUSE_CRASHREPORT
878 void GenerateDebugReport(wxDebugReport::Context ctx);
880 std::unique_ptr<wxLocale> m_locale;
881 std::unique_ptr<wxTranslations> m_translations;
883 wxString m_configFileName;
885 static bool m_allWindowsInOneProcess;
888class MyDropTarget :
public wxFileDropTarget
891 explicit MyDropTarget(
wxMaxima *wxmax)
894 bool OnDropFiles(wxCoord x, wxCoord y,
const wxArrayString &files);
CellType
The supported types of math cells.
Definition: Cell.h:64
This file declares the class DirStructure.
The header file for the xml cell parser.
An object that represents the directory structure wxMaxima is installed in.
Definition: Dirstructure.h:58
Definition: FindReplacePane.h:48
void SetBatchMode()
Causes log messages to be output to stderr, as well.
Definition: LogPane.h:47
This class handles parsing the xml representation of a cell tree.
Definition: MathParser.h:53
Handles the "<ipc>" tag from Maxima.
Definition: MaximaIPC.h:41
void ReadInputData(const wxString &data)
Reads the interprocess communications tag, used in test scripts, etc.
Definition: MaximaIPC.cpp:90
Interface to the Maxima process.
Definition: Maxima.h:63
Definition: test_ImgCell.cpp:70
A Text cell.
Definition: TextCell.h:38
The canvas that contains the spreadsheet the whole program is about.
Definition: Worksheet.h:95
void OpenHCaret(const wxString &txt={})
Place the cursor into a new cell where the horizontal cursor is.
Definition: Worksheet.h:1284
void QuestionAnswered()
Mark the current question from maxima as "answered"..
Definition: Worksheet.cpp:3330
The frame containing the menu and the sidebars.
Definition: wxMaximaFrame.h:66
LogPane * m_logPane
The panel the log and debug messages will appear on.
Definition: wxMaximaFrame.h:333
A version number that can be compared using "<" and ">".
Definition: wxMaxima.h:151
Definition: wxMaxima.h:65
void PlotMenu(wxCommandEvent &event)
Processes "Plot menu" cloicks.
Definition: wxMaxima.cpp:9093
void OnIdle(wxIdleEvent &event)
The idle task that refreshes the gui (worksheet, menus, title line,...)
Definition: wxMaxima.cpp:5079
void VariableActionAutoconfVersion(const wxString &value)
Called if maxima tells us the maxima version as defined by autoconf.
Definition: wxMaxima.cpp:3506
int m_port
The port the actual maxima process (not its wrapper script) runs at.
Definition: wxMaxima.h:735
bool AutoSave()
Save the project in a temp file.
Definition: wxMaxima.cpp:6034
bool m_dispReadOut
what is displayed in statusbar
Definition: wxMaxima.h:769
void FileMenu(wxCommandEvent &event)
Processes "file menu" clicks.
Definition: wxMaxima.cpp:6080
bool m_scheduleUpdateToc
True = schedule an update of the table of contents.
Definition: wxMaxima.h:750
void VariableActionGentranlang(const wxString &value)
Called if maxima tells us the value of the maxima variable gentranlang.
Definition: wxMaxima.cpp:3446
bool SaveFile(bool forceSave=false)
Saves the current file.
Definition: wxMaxima.cpp:5687
void VariableActionDisplay2d_Unicode(const wxString &value)
Called if maxima tells us the value of the maxima variable display2d_unicode.
Definition: wxMaxima.cpp:3439
void ShowTip(bool force)
Definition: wxMaxima.cpp:4899
void VariableActionUserDir(const wxString &value)
Called if maxima tells us where the user files lie.
Definition: wxMaxima.cpp:3433
void ReadMiscText(const wxString &data)
Reads text that isn't enclosed between xml tags.
Definition: wxMaxima.cpp:3161
void ReadMath(const wxXmlDocument &xml)
Reads the math cell's contents from Maxima.
Definition: wxMaxima.cpp:3307
static wxRegEx m_xmlOpeningTag
Looks if this opening tag is actually complete.
Definition: wxMaxima.h:261
void EquationsMenu(wxCommandEvent &event)
Processes "equations menu" clicks.
Definition: wxMaxima.cpp:7731
void VariableActionDomain(const wxString &value)
Called if maxima tells us the value of the maxima variable domain
Definition: wxMaxima.cpp:3835
static wxString m_promptPrefix
The marker for the start of a input prompt.
Definition: wxMaxima.h:741
void OnMinimize(wxIconizeEvent &event)
Called when this window is minimized.
Definition: wxMaxima.cpp:11240
static const wxString Get_Maxima_Commandline_Filename()
The maxima command, if we use the –maxima=<str> command. If empty we use the configured path,...
Definition: wxMaxima.h:169
void VariableActionAltDisplay2D(const wxString &value)
Called if maxima tells us if it currently outputs XML.
Definition: wxMaxima.cpp:3867
void ShowWxMaximaHelp()
Show the help for wxMaxima.
Definition: wxMaxima.cpp:4958
TextCell * ConsoleAppend(wxString s, CellType type)
append maxima output to console
Definition: wxMaxima.cpp:2067
void ChangeCellStyle(wxCommandEvent &event)
Is triggered when the textstyle drop-down box's value is changed.
Definition: wxMaxima.cpp:11247
static wxString ExtraMaximaArgs()
Which additional maxima arguments did we get from the command line?
Definition: wxMaxima.h:88
bool m_isActive
Is this window active?
Definition: wxMaxima.h:267
void VariableActionOpSubst(const wxString &value)
Called if maxima tells us the value of the maxima variable opsubst.
Definition: wxMaxima.cpp:3455
void MaximaEvent(wxThreadEvent &event)
Maxima sends or receives data, or disconnects.
Definition: wxMaxima.cpp:2414
wxString ReadPotentiallyUnclosedTag(wxStringTokenizer &lines, wxString firstLine)
Reads a potentially unclosed XML tag and closes it.
Definition: wxMaxima.cpp:4305
void OnReplace(wxFindDialogEvent &event)
Is triggered when the "Replace" button in the search dialog is pressed.
Definition: wxMaxima.cpp:6706
int SaveDocumentP()
Tries or offers to save the document.
Definition: wxMaxima.cpp:11186
void VariableActionDisplay2D(const wxString &value)
Called if maxima tells us the value of the maxima variable display2d
Definition: wxMaxima.cpp:3844
void ReadMaximaIPC(const wxString &data)
Reads autocompletion templates we get on definition of a function or variable.
Definition: wxMaxima.h:530
void AddDrawParameter(wxString cmd, int dimensionsOfNewDrawCommand=2)
Add a parameter to a draw command.
Definition: wxMaxima.cpp:8248
void ShowHelp(const wxString &keyword)
Try to determine if help is needed for maxima or wxMaxima and show this help.
Definition: wxMaxima.cpp:5039
void CommandWiz(const wxString &title, const wxString &description, const wxString &description_tooltip, const wxString &commandRule, wxString label1, wxString defaultval1, wxString tooltip1={}, wxString label2={}, wxString defaultval2={}, wxString tooltip2={}, wxString label3={}, wxString defaultval3={}, wxString tooltip3={}, wxString label4={}, wxString defaultval4={}, wxString tooltip4={}, wxString label5={}, wxString defaultval5={}, wxString tooltip5={}, wxString label6={}, wxString defaultval6={}, wxString tooltip6={}, wxString label7={}, wxString defaultval7={}, wxString tooltip7={}, wxString label8={}, wxString defaultval8={}, wxString tooltip8={}, wxString label9={}, wxString defaultval9={}, wxString tooltip9={})
Invoke our standard wizard that generates maxima commands.
Definition: wxMaxima.cpp:9395
void MaximaMenu(wxCommandEvent &event)
Processes "maxima menu" clicks.
Definition: wxMaxima.cpp:6888
static void ExtraMaximaArgs(const wxString &args)
Additional maxima arguments from the command line.
Definition: wxMaxima.h:86
void EvalOnStartup(bool eval)
Do we want to evaluate the document on startup?
Definition: wxMaxima.h:113
static void ExitOnError()
Exit if we encounter an error.
Definition: wxMaxima.h:75
void PrintMenu(wxCommandEvent &event)
Definition: wxMaxima.cpp:5307
void OnUpdateTOCEvent(wxCommandEvent &event)
Is called when something requests an update of the table of contents.
Definition: wxMaxima.cpp:5681
void UpdateMenus()
Enables and disables the Right menu buttons.
Definition: wxMaxima.cpp:5346
void LaunchHelpBrowser(wxString uri)
Launches the help browser on the uri passed as an argument.
Definition: wxMaxima.cpp:4915
wxInputStream * m_maximaStdout
The stdout of the maxima process.
Definition: wxMaxima.h:731
void VarReadEvent(wxCommandEvent &event)
Trigger reading all variables from Maxima that are shown in the Variables sidebar.
Definition: wxMaxima.cpp:10334
void GnuplotCommandName(wxString gnuplot)
Sets gnuplot's command name and tries to determine gnuplot's path.
Definition: wxMaxima.cpp:3536
void VariableActionAutoconfHost(const wxString &value)
Called if maxima tells us the maxima build host as defined by autoconf.
Definition: wxMaxima.cpp:3511
static bool GetEnableIPC()
Do we allow maxima to click buttons in wxMaxima?
Definition: wxMaxima.h:84
void ReadSuppressedOutput(const wxString &data)
Read (and discard) suppressed output.
Definition: wxMaxima.cpp:3323
std::unique_ptr< wxSocketServer, ServerDeleter > m_server
The server maxima connects to as client.
Definition: wxMaxima.h:727
void OnMaximaConnect()
Is called if maxima connects to wxMaxima.
Definition: wxMaxima.cpp:2511
wxTimer m_maximaStdoutPollTimer
A timer that polls for output from the maxima process.
Definition: wxMaxima.h:109
void VariableActionWxLoadFileName(const wxString &value)
Called if maxima tells us the name of a package that was loaded.
Definition: wxMaxima.cpp:3723
void OnFollow(wxCommandEvent &event)
Called when the "Scroll to currently evaluated" button is pressed.
Definition: wxMaxima.cpp:11067
void NetworkDClick(wxCommandEvent &ev)
Issued on double click on the network status.
Definition: wxMaxima.cpp:11031
bool DocumentSaved()
Does this document need saving?
Definition: wxMaxima.h:139
void EditMenu(wxCommandEvent &event)
Processes "Edit menu" clicks.
Definition: wxMaxima.cpp:6270
static void Set_Maxima_Commandline_Filename(const wxString &filename)
Use this maxima command (from a command line option) instead of the configured path.
Definition: wxMaxima.h:166
TextCell * DoRawConsoleAppend(wxString s, CellType type, AppendOpt opts={})
Append one or more lines of ordinary unicode text to the console.
Definition: wxMaxima.cpp:2191
long long GetMaximaCpuTime()
How much CPU time has maxima used till now? Used by GetMaximaCPUPercentage.
Definition: wxMaxima.cpp:5921
void ReplaceSuggestion(wxCommandEvent &event)
Processes clicks on suggestions.
Definition: wxMaxima.cpp:10672
void SetCWD(wxString file)
Set the current working directory file I/O from maxima is relative to.
Definition: wxMaxima.cpp:4134
static wxRegEx m_xmlOpeningTagName
Finds the name of an opening tag.
Definition: wxMaxima.h:259
void EditInputMenu(wxCommandEvent &event)
Spawn the "configure" menu.
Definition: wxMaxima.cpp:10311
void LoadImage(const wxString &file)
Load an image from a file into the worksheet.
Definition: wxMaxima.h:143
static void EnableIPC()
Allow maxima to click buttons in wxMaxima.
Definition: wxMaxima.h:82
void UpdateToolBar()
Enables and disables the Right toolbar buttons.
Definition: wxMaxima.cpp:5414
void HistoryDClick(wxCommandEvent &event)
Issued on double click on a history item.
Definition: wxMaxima.cpp:11047
void OnNewDemoFiles(wxCommandEvent &event)
Is called when we get a new list of demo files Is called when we get a new list of demo files.
Definition: wxMaxima.cpp:1786
void VariableActionTempDir(const wxString &value)
Called if maxima tells us where the temp files lie.
Definition: wxMaxima.cpp:3480
wxString GetCommand(bool params=true)
returns the command to start maxima
Definition: wxMaxima.cpp:4850
static wxString m_mathPrefix1
A marker for the start of maths.
Definition: wxMaxima.h:737
void VariableActionNumer(const wxString &value)
Called if maxima tells us the value of the maxima variable numer.
Definition: wxMaxima.cpp:3767
bool OpenFile(const wxString &file, const wxString &command={})
Open a file.
Definition: wxMaxima.cpp:5548
void OnFind(wxFindDialogEvent &event)
Is triggered when the "Find" button in the search dialog is pressed.
Definition: wxMaxima.cpp:6681
void OnSymbolAdd(wxCommandEvent &event)
Sends a new char to the symbols sidebar.
Definition: wxMaxima.cpp:6755
void VariableActionDebugmode(const wxString &value)
Called if maxima tells us the value of the maxima variable debugmode.
Definition: wxMaxima.cpp:3491
wxInputStream * m_maximaStderr
The stderr of the maxima process.
Definition: wxMaxima.h:733
void VariableActionStringdisp(const wxString &value)
Called if maxima tells us the value of the maxima variable stringdisp
Definition: wxMaxima.cpp:3757
bool OpenMACFile(const wxString &file, Worksheet *document, bool clearDocument=true)
Opens a .mac file or a .out file from Xmaxima.
Definition: wxMaxima.cpp:4180
bool OpenWXMXFile(const wxString &file, Worksheet *document, bool clearDocument=true)
Opens a wxmx file.
Definition: wxMaxima.cpp:4339
void KillMaxima(bool logMessage=true)
kills the maxima process
Definition: wxMaxima.cpp:2853
void VarAddAllEvent(wxCommandEvent &event)
Trigger adding all variables to the variables sidebar.
Definition: wxMaxima.cpp:10325
void VariableActionSinnpiflag(const wxString &value)
Called if maxima tells us the value of the maxima variable sinnpiflag.
Definition: wxMaxima.cpp:3427
void ListMenu(wxCommandEvent &event)
Processes "list menu" clicks.
Definition: wxMaxima.cpp:8441
void ReadStdErr()
Polls the stderr and stdout of maxima for input.
Definition: wxMaxima.cpp:5786
void ReadAddVariables(const wxXmlDocument &xmldoc)
Reads the "add variable to watch list" tag maxima can send us.
Definition: wxMaxima.cpp:3939
static bool GetExitOnError()
Do we exit if we encounter an error?
Definition: wxMaxima.h:77
void PropertiesMenu(wxCommandEvent &event)
Processes "Variable/Function props menu" clicks.
Definition: wxMaxima.cpp:6765
void VariableActionMaximaDemodir(const wxString &value)
Called if maxima tells us the maxima demo dir.
Definition: wxMaxima.cpp:3707
void VariableActionLogexpand(const wxString &value)
Called if maxima tells us the value of the maxima variable logexpand.
Definition: wxMaxima.cpp:3462
void VariableActionAlgebraic(const wxString &value)
Called if maxima tells us the value of the maxima variable algebraic
Definition: wxMaxima.cpp:3777
void VariableActionMaximaSharedir(const wxString &value)
Called if maxima tells us the maxima share dir.
Definition: wxMaxima.cpp:3696
void TriggerEvaluation()
Try to evaluate the next command for maxima that is in the evaluation queue.
Definition: wxMaxima.cpp:10504
void OnTimerEvent(wxTimerEvent &event)
Is triggered when a timer this class is responsible for requires.
Definition: wxMaxima.cpp:6001
void PassKeyboardFocus()
Forwards the keyboard focus to a text control that might need it.
Definition: wxMaxima.cpp:11228
void ReadPrompt(const wxString &data)
Reads the input prompt from Maxima.
Definition: wxMaxima.cpp:4010
double GetMaximaCPUPercentage()
How much CPU horsepower is maxima using currently?
Definition: wxMaxima.cpp:5973
void NumericalMenu(wxCommandEvent &event)
Processes "Numerical menu" clicks.
Definition: wxMaxima.cpp:9155
bool m_closing
Did we tell maxima to close?
Definition: wxMaxima.h:779
void SendMaxima(wxString s, bool addToHistory=false)
Definition: wxMaxima.cpp:2323
void ResetTitle(bool saved, bool force=false)
Update the title.
Definition: wxMaxima.cpp:10917
void ReadVariables(const wxXmlDocument &xmldoc)
Reads the variable values maxima advertises to us.
Definition: wxMaxima.cpp:3357
void OnJumpToError(wxCommandEvent &event)
Called when the "Scroll to last error" button is pressed.
void VariableActionMaximaInfodir(const wxString &value)
Called if maxima tells us the maxima info dir.
Definition: wxMaxima.cpp:3515
wxString m_maximaTempDir
The directory with maxima's temp files.
Definition: wxMaxima.h:781
void OnReplaceAll(wxFindDialogEvent &event)
Is triggered when the "Replace All" button in the search dialog is pressed.
Definition: wxMaxima.cpp:6735
void DrawMenu(wxCommandEvent &event)
Processes "draw menu" clicks.
Definition: wxMaxima.cpp:8275
void VariableActionEngineeringFormat(const wxString &value)
Called if maxima tells us the value of the maxima variable engineering_format_floats
Definition: wxMaxima.cpp:3795
void VariableActionLispVersion(const wxString &value)
Called if maxima tells us the lisp version.
Definition: wxMaxima.cpp:3719
bool OpenXML(const wxString &file, Worksheet *document)
Opens a content.xml file that has been extracted from a broken .wxmx file.
Definition: wxMaxima.cpp:4650
void SimplifyMenu(wxCommandEvent &event)
Processes "Simplify menu" clicks.
Definition: wxMaxima.cpp:8641
void Interrupt(wxCommandEvent &event)
Interrupt button and hotkey presses Make the menu item, toolbars and panes visible that should be vis...
Definition: wxMaxima.cpp:2725
wxProcess * m_gnuplotProcess
The gnuplot process info.
Definition: wxMaxima.h:263
void OnFocus(wxFocusEvent &event)
Called when this window is focussed or defocussed.
Definition: wxMaxima.cpp:11222
void VariableActionMaximaHtmldir(const wxString &value)
Called if maxima tells us the maxima html dir.
Definition: wxMaxima.cpp:3522
void ReadManualTopicNames(const wxXmlDocument &xmldoc)
Read a manual topic name so we can jump to the right documentation page.
Definition: wxMaxima.cpp:3257
TimerIDs
An enum of individual IDs for all timers this class handles.
Definition: wxMaxima.h:92
@ KEYBOARD_INACTIVITY_TIMER_ID
The keyboard was inactive long enough that we can attempt an auto-save.
Definition: wxMaxima.h:94
@ AUTO_SAVE_TIMER_ID
The time between two auto-saves has elapsed.
Definition: wxMaxima.h:96
@ MAXIMA_STDOUT_POLL_ID
We look if we got new data from maxima's stdout.
Definition: wxMaxima.h:98
bool StartServer()
starts the server
Definition: wxMaxima.cpp:2544
long m_commandIndex
The Char the current command starts at in the current WorkingGroup.
Definition: wxMaxima.h:788
void VariableActionSinnpiflagUndefined()
Called if maxima tells us that the maxima variable sinnpiflag is undefined.
Definition: wxMaxima.cpp:3431
bool CheckWXMXVersion(const wxString &docversion)
Complains if the version string from the XML file indicates too low a maxima version.
Definition: wxMaxima.cpp:4628
void OnClose(wxCloseEvent &event)
close wxMaxima window
Definition: wxMaxima.cpp:9727
void VariableActionHtmlHelp(const wxString &value)
Called if maxima tells us the value of the maxima variable output_format_for_help.
Definition: wxMaxima.cpp:3805
void VariableActionOperators(const wxString &value)
Called if maxima sends us the list of known operators.
Definition: wxMaxima.cpp:3890
void VariableActionLmxChar(const wxString &value)
Called if maxima tells us the value of the maxima variable lmxchar
Definition: wxMaxima.cpp:3741
void MaximaDClick(wxCommandEvent &ev)
Issued on double click on the Maxima status icon.
Definition: wxMaxima.cpp:11037
bool SaveNecessary()
Does this file contain anything worth saving?
Definition: wxMaxima.cpp:10296
wxProcess * m_gnuplotTerminalQueryProcess
Info about the gnuplot process we start for querying the terminals it supports.
Definition: wxMaxima.h:265
void StripLispComments(wxString &s)
Remove empty statements.
Definition: wxMaxima.cpp:2308
void MenuCommand(const wxString &cmd)
Inserts command cmd into the worksheet.
Definition: wxMaxima.cpp:5291
void ReadStatusBar(const wxXmlDocument &xmldoc)
Reads the output of wxstatusbar() commands.
Definition: wxMaxima.cpp:3236
static const wxString m_promptSuffix
The marker for the end of a input prompt.
Definition: wxMaxima.h:744
bool OpenWXMFile(const wxString &file, Worksheet *document, bool clearDocument=true)
Opens a wxm file.
Definition: wxMaxima.cpp:4241
bool QueryVariableValue()
Query the value of a new maxima variable.
Definition: wxMaxima.cpp:3971
void StatusMsgDClick(wxCommandEvent &ev)
Issued on double click on the status message in the status bar.
Definition: wxMaxima.cpp:11041
void ShowMaximaHelp(wxString={})
Show the help for Maxima.
Definition: wxMaxima.cpp:5046
void HelpMenu(wxCommandEvent &event)
Processes "Help menu" clicks.
Definition: wxMaxima.cpp:9444
wxString GetCWD()
Get the current working directory file I/O from maxima is relative to.
Definition: wxMaxima.h:705
std::unique_ptr< GroupCell > CreateTreeFromXMLNode(wxXmlNode *xmlcells, const wxString &wxmxfilename={})
Loads a wxmx description.
Definition: wxMaxima.cpp:4715
void VariableActionShowtime(const wxString &value)
Called if maxima tells us the value of the maxima variable showtime
Definition: wxMaxima.cpp:3786
void ShowPane(wxCommandEvent &event)
Toggle the visibility of a pane.
Definition: wxMaxima.cpp:11005
void ShowMaximaHelpWithoutAnchor()
Show the help for Maxima (without handling of anchors).
Definition: wxMaxima.cpp:4997
void ReadFirstPrompt(const wxString &data)
Determines the process id of maxima from its initial output.
Definition: wxMaxima.cpp:3099
long long GetTotalCpuTime()
How much CPU time has been used by the system until now? Used by GetMaximaCPUPercentage.
Definition: wxMaxima.cpp:5886
bool StartMaxima(bool force=false)
starts maxima (uses getCommand) or restarts it if needed
Definition: wxMaxima.cpp:2605
void ExitAfterEval(bool exitaftereval)
Do we want to exit the program after evaluation?
Definition: wxMaxima.h:119
void VariableActionAutoplay(const wxString &value)
Called if maxima tells us the value of the maxima variable wxanimate_autoplay
Definition: wxMaxima.cpp:3826
void VariableActionWxSubscripts(const wxString &value)
Called if maxima tells us the value of the maxima variable wxsubscripts
Definition: wxMaxima.cpp:3730
wxString m_gnuplotcommand
Maxima's idea about gnuplot's location.
Definition: wxMaxima.h:786
void ServerEvent(wxSocketEvent &event)
Server event: Maxima connects.
Definition: wxMaxima.cpp:2499
static wxString m_mathPrefix2
A marker for the start of maths.
Definition: wxMaxima.h:739
void MatrixMenu(wxCommandEvent &event)
Processes "algebra menu" clicks.
Definition: wxMaxima.cpp:7951
void SetupVariables()
Setup maxima's variables.
Definition: wxMaxima.cpp:4749
void OnDemoFileMenu(wxCommandEvent &ev)
Is called when a demo file menu is clicked.
Definition: wxMaxima.cpp:1839
void UpdateSlider()
Updates the slider to show the right frame.
Definition: wxMaxima.cpp:10977
void TableOfContentsSelection(wxListEvent &event)
Issued on double click on a table of contents item.
Definition: wxMaxima.cpp:11053
void VariableActionLispName(const wxString &value)
Called if maxima tells us the lisp name.
Definition: wxMaxima.cpp:3715
void ConfigChanged()
Is called on start and whenever the configuration changes.
Definition: wxMaxima.cpp:138
void EvaluateEvent(wxCommandEvent &event)
Handle the evaluation event.
Definition: wxMaxima.cpp:10346
static wxString m_firstPrompt
The first prompt maxima will output.
Definition: wxMaxima.h:768
void CalculusMenu(wxCommandEvent &event)
event handling for menus
Definition: wxMaxima.cpp:8900
bool SaveOnClose()
Try to save the file before closing it - or return false.
Definition: wxMaxima.cpp:9683
void VariableActionGnuplotCommand(const wxString &value)
Called if maxima tells us the value of the maxima variable gnuplot
Definition: wxMaxima.cpp:3650
The Right Way to delete a wxSocketServer.
Definition: wxMaxima.h:716
This file declares the class wxMaximaFrame.