30#ifndef WXMAXIMAFRAME_H
31#define WXMAXIMAFRAME_H
37#include <wx/dirctrl.h>
38#include <wx/filehistory.h>
39#include <wx/listbox.h>
40#include <wx/bmpbuttn.h>
42#include <wx/aui/aui.h>
43#include <wx/notifmsg.h>
44#include <wx/wrapsizer.h>
48#include "wizards/ScrollingGenWizPanel.h"
67 wxMaximaFrame(wxWindow *parent,
int id,
const wxString &title,
68 const wxPoint &pos = wxDefaultPosition,
69 const wxSize &size = wxDefaultSize,
70 long style = wxDEFAULT_FRAME_STYLE | wxSYSTEM_MENU | wxCAPTION);
82 static std::size_t CountWindows();
110 void ShowPane(
int id,
bool show =
true);
122 m_manager.GetPane(wxS(
"log"))
123 .Show(!m_manager.GetPane(wxS(
"log")).IsShown());
129 m_manager.GetPane(
"wizard").Show(
true).Caption(title);
132 void HideWizardPane()
134 m_manager.GetPane(
"wizard").Show(
false);
156 void UpdateStatusMaximaBusy();
158 StatusBar::MaximaStatus m_StatusMaximaBusy = StatusBar::wait_for_start;
159 StatusBar::MaximaStatus m_StatusMaximaBusy_next = StatusBar::wait_for_start;
261 void HideAllSidebars(wxCommandEvent &ev);
263 wxString wxMaximaManualLocation();
266 const std::unordered_map<int, wxString> &
GetSidebarNames()
const {
return m_sidebarNames;}
271 std::unordered_map<int, wxString> m_sidebarNames;
273 std::unordered_map<int, wxString> m_sidebarCaption;
275 std::size_t m_bytesFromMaxima_last = 0;
276 wxTimer m_bytesReadDisplayTimer;
278 bool m_StatusSaving =
false;
286 void SetupFileMenu();
287 void SetupEditMenu();
288 void SetupViewMenu();
289 void SetupCellMenu();
290 void SetupMaximaMenu();
291 void SetupEquationsMenu();
292 void SetupMatrixMenu();
293 void SetupCalculusMenu();
294 void SetupSimplifyMenu();
295 void SetupListMenu();
296 void SetupPlotMenu();
297 void SetupNumericMenu();
298 void SetupHelpMenu();
301 void StatusText(
const wxString &text,
bool saveInLog =
true);
323 std::array<wxString, 10> m_statusTextHistory;
324 void OnMenuStatusText(wxMenuEvent &event);
325 std::unordered_map<wxWindowID, wxString> m_demoFilesIDs;
338 bool ToolbarIsShown();
341 wxAuiManager m_manager;
354 wxMenu *m_recentDocumentsMenu = NULL;
355 wxMenu *m_unsavedDocumentsMenu = NULL;
356 wxMenu *m_recentPackagesMenu = NULL;
357 wxMenu *m_autoSubscriptMenu = NULL;
358 wxMenu *m_equationTypeMenuMenu = NULL;
359 wxMenu *m_roundedMatrixParensMenu = NULL;
This file declares the class EventIDs that contains unique IDs for many events wxMaxima needs.
This file declares the class HelpBrowser.
This file contains the definition of the class History that handles the recently issued commands for ...
This file declares a (hopefully) flicker-free main menu bar.
The definition of the class RecentDocuments that provides a recent files mechanism that is extensible...
This file contains the definition of the class History that handles the recently issued commands for ...
This file contains the definition of the class TableOfContents that handles the table of contents pan...
This file defines the class Worksheet.
This file contains the definition of the class XmlInspector that handles the table of contents pane.
The configuration storage for the current worksheet.
Definition: Configuration.h:84
Definition: HelpBrowser.h:48
This class generates a pane containing the last commands that were issued.
Definition: History.h:56
void AddToHistory(const wxString &cmd)
Add a file to the recently opened files list.
Definition: History.cpp:262
A menu bar that flickers less on MS windows.
Definition: MainMenuBar.h:37
A class that maintains a list of recent documents.
Definition: RecentDocuments.h:42
The class that draws the status bar.
Definition: StatusBar.h:47
This class generates a pane containing the table of contents.
Definition: TableOfContents.h:52
A "variables" sidepane.
Definition: VariablesPane.h:44
The canvas that contains the spreadsheet the whole program is about.
Definition: Worksheet.h:95
This class generates a pane displaying the communication between maxima and wxMaxima.
Definition: XmlInspector.h:40
The frame containing the menu and the sidebars.
Definition: wxMaximaFrame.h:65
wxMenu * m_FileMenu
The file menu.
Definition: wxMaximaFrame.h:211
void UpdateRecentDocuments()
Update the recent documents list.
Definition: wxMaximaFrame.cpp:2077
void StatusSaveFailed()
Set the status to "Saving has failed".
Definition: wxMaximaFrame.cpp:576
void RegisterAutoSaveFile()
Remember a temporary autosave file name.
Definition: wxMaximaFrame.cpp:2132
const std::unordered_map< int, wxString > & GetSidebarNames() const
Get the list of human-readable sidebarnames and IDs.
Definition: wxMaximaFrame.h:266
bool m_first
Do we expect the 1st prompt from maxima to appear?
Definition: wxMaximaFrame.h:336
virtual ~wxMaximaFrame()
The destructor.
Definition: wxMaximaFrame.cpp:588
wxMenu * m_EditMenu
The edit menu.
Definition: wxMaximaFrame.h:213
TableOfContents * m_tableOfContents
The table of contents pane.
Definition: wxMaximaFrame.h:184
void StatusSaveFinished()
Set the status to "Maxima has finished saving".
Definition: wxMaximaFrame.cpp:560
int m_commandsLeftInCurrentCell
The number of commands left in the current of the evaluation queue item.
Definition: wxMaximaFrame.h:333
void TogglePaneVisibility(int id)
Hides or unhides the pane with the given ID.
Definition: wxMaximaFrame.cpp:2208
void ReReadConfig()
Re-read the configuration.
Definition: wxMaximaFrame.cpp:2102
wxMenu * m_Simplify_Complex_Sub
The complex submenu.
Definition: wxMaximaFrame.h:235
wxString m_leftStatusText
The text for the Left half of the Status Bar.
Definition: wxMaximaFrame.h:311
bool IsXMLInspectorShown()
Is the XML inspector shown?
Definition: wxMaximaFrame.h:112
void StatusExportStart()
Set the status to "Maxima is exporting".
Definition: wxMaximaFrame.cpp:564
virtual wxSize DoGetBestClientSize() const
The default size for the window.
Definition: wxMaximaFrame.cpp:462
wxMenu * m_PlotMenu
The plot menu.
Definition: wxMaximaFrame.h:240
wxMenu * m_Maxima_Panes_Sub
The panes submenu.
Definition: wxMaximaFrame.h:219
wxMenu * m_EquationsMenu
The equations menu.
Definition: wxMaximaFrame.h:221
bool m_updateEvaluationQueueLengthDisplay
Do we need to update the display showing the evaluation queue length?
Definition: wxMaximaFrame.h:331
wxMenu * m_gentranMenu
The gentran menu.
Definition: wxMaximaFrame.h:205
void ToggleXMLInspector()
Hide or unhide the XML inspector.
Definition: wxMaximaFrame.h:114
long m_drawDimensions_last
Are we inside a 2d or 3d draw command?
Definition: wxMaximaFrame.h:305
wxString m_tempfileName
The last name GetTempAutosavefileName() has returned.
Definition: wxMaximaFrame.h:191
wxString m_rightStatusText
The text for the Right half of the Status Bar.
Definition: wxMaximaFrame.h:309
wxMenu * m_Simplify_Trig_Sub
The trigonometric submenu.
Definition: wxMaximaFrame.h:233
void PopulateRecentPackagesMenu(wxMenu *menu, int firstEntry, const std::list< wxString > &items)
Used by UpdateRecentPackages for populating a menu.
Definition: wxMaximaFrame.cpp:2061
void ShowPane(int id, bool show=true)
Show or hide a sidebar.
Definition: wxMaximaFrame.cpp:2217
StatusBar * m_statusBar
The status bar.
Definition: wxMaximaFrame.h:195
XmlInspector * m_xmlInspector
A XmlInspector-like xml monitor.
Definition: wxMaximaFrame.h:348
void EvaluationQueueLength(int length, int numberOfCommands=-1)
Inform the user about the length of the evaluation queue.
Definition: wxMaximaFrame.cpp:472
bool m_forceStatusbarUpdate
true=force an update of the status bar at the next call of StatusMaximaBusy()
Definition: wxMaximaFrame.h:350
wxMenu * m_demo_sub
The "demo" sub-menu.
Definition: wxMaximaFrame.h:199
wxMenu * m_listMenu
The list menu.
Definition: wxMaximaFrame.h:242
wxMenu * m_debugTypeMenu
Contains the menu for the debugger trigger settingxc.
Definition: wxMaximaFrame.h:231
void PopulateRecentDocumentsMenu(wxMenu *menu, int firstEntry, const std::list< wxString > &items)
Used by UpdateRecentDocuments for populating a menu.
Definition: wxMaximaFrame.cpp:2038
MainMenuBar * m_MenuBar
The menu bar.
Definition: wxMaximaFrame.h:197
void OnNotificationClose(wxCommandEvent WXUNUSED(&event))
Issued if a notification is closed.
History *const m_history
The history pane.
Definition: wxMaximaFrame.h:346
wxMenu * m_Simplify_Gamma_Sub
The factorials and gamma submenu.
Definition: wxMaximaFrame.h:229
int m_EvaluationQueueLength
The current length of the evaluation queue of commands we still need to send to maxima.
Definition: wxMaximaFrame.h:329
void RemoveTempAutosavefile()
Remove an eventual temporary autosave file.
Definition: wxMaximaFrame.cpp:2142
wxMenu * m_CalculusMenu
The calculus menu.
Definition: wxMaximaFrame.h:237
void DockAllSidebars(wxCommandEvent &ev)
An instant single-window mode.
Definition: wxMaximaFrame.cpp:2174
void StatusSaveStart()
Set the status to "Maxima is saving".
Definition: wxMaximaFrame.cpp:555
wxMenu * m_viewMenu
The "view" menu.
Definition: wxMaximaFrame.h:203
void ReadConfig()
Read the configuration from the OS's configuration storage.
Definition: wxMaximaFrame.cpp:2097
wxMenu * m_SimplifyMenu
The simplify menu.
Definition: wxMaximaFrame.h:227
void ShowWizardPane(wxString title)
Show the pane the wizards are in.
Definition: wxMaximaFrame.h:127
long m_pid
The process id of maxima. Is determined by ReadFirstPrompt.
Definition: wxMaximaFrame.h:189
void StatusExportFailed()
Set the status to "Exporting has failed".
Definition: wxMaximaFrame.cpp:582
std::size_t m_bytesFromMaxima
How many bytes did maxima send us until now?
Definition: wxMaximaFrame.h:187
wxMenu * m_matrix_menu
The matrix menu.
Definition: wxMaximaFrame.h:225
wxMenu * m_MaximaMenu
The maxima menu.
Definition: wxMaximaFrame.h:223
wxMenu * m_subst_Sub
The subst submenu.
Definition: wxMaximaFrame.h:207
void ShowToolBar(bool show)
Shows or hides the toolbar.
Definition: wxMaximaFrame.cpp:2241
void StatusMaximaBusy(StatusBar::MaximaStatus status)
Set the status according to if maxima is calculating.
Definition: wxMaximaFrame.h:155
bool IsPaneDisplayed(int id)
true, if a Pane is currently enabled
Definition: wxMaximaFrame.cpp:2154
wxMenu * m_HelpMenu
The help menu.
Definition: wxMaximaFrame.h:246
void ToggleLogPane()
Toggle the visibility of the log pane.
Definition: wxMaximaFrame.h:120
DrawSidebar * m_drawPane
The sidebar with the draw commands.
Definition: wxMaximaFrame.h:315
void StatusExportFinished()
Set the status to "Maxima has finished exporting".
Definition: wxMaximaFrame.cpp:570
wxMenu * m_Edit_Zoom_Sub
The zoom submenu.
Definition: wxMaximaFrame.h:217
wxMenu * m_NumericMenu
The numeric menu.
Definition: wxMaximaFrame.h:244
wxMenu * m_CellMenu
The cell menu.
Definition: wxMaximaFrame.h:215
Variablespane * m_variablesPane
The panel the user can display variable contents in.
Definition: wxMaximaFrame.h:182
bool m_newStatusText
Do we have new text to output in the Status Bar?
Definition: wxMaximaFrame.h:307
std::vector< wxMenu * > m_demoSubs
The submenus for the various "demo" sub-submenus.
Definition: wxMaximaFrame.h:201
Worksheet *const m_worksheet
The worksheet itself.
Definition: wxMaximaFrame.h:344
RecentDocuments m_recentDocuments
The panel the log and debug messages will appear on.
Definition: wxMaximaFrame.h:352
wxMenu * m_logexpand_Sub
The logexpand submenu.
Definition: wxMaximaFrame.h:209
wxString GetDemoFile(wxWindowID id) const
Looks up which demo file belongs to a wxWindowID.
Definition: wxMaximaFrame.cpp:1997
void AddToHistory(const wxString &cmd)
Adds a command to the list of recently used maxima commands.
Definition: wxMaximaFrame.h:141