39#include <wx/xml/xml.h>
40#include <wx/aui/aui.h>
41#include <wx/textfile.h>
42#include <wx/fdrepdlg.h>
48#include "CellPointers.h"
53#include "cells/ImgCell.h"
54#include "cells/ImgCellBase.h"
63#include "cells/TextCell.h"
121 { GetClientSize(width, height); }
123 {
int x, y; GetViewStart(&x, &y);
return y; }
125 { SetVirtualSize(width, height); }
128 {
const wxPoint p = GetPosition(); *x = p.x; *y = p.y; }
148 wxString m_maximaDocDir;
150 bool m_updateControls =
true;
152 bool m_scrollToCaret =
false;
154 int m_newxPosition = -1;
156 int m_newyPosition = -1;
158 double m_zoomAtGestureStart = 1.0;
160 bool m_scrollToTopOfCell =
false;
162 bool m_windowActive =
true;
164 wxRegion m_regionToRefresh;
173 bool m_fullRedrawRequested =
false;
177 static wxDataFormat m_wxmFormat;
179 static wxDataFormat m_mathmlFormat;
181 static wxDataFormat m_mathmlFormat2;
183 static wxDataFormat m_rtfFormat;
185 static wxDataFormat m_rtfFormat2;
189 static wxDataFormat m_rtfFormat3;
193 class MathMLDataObject :
public wxCustomDataObject
196 explicit MathMLDataObject(
const wxString &data);
201 wxCharBuffer m_databuf;
205 class wxmDataObject :
public wxCustomDataObject
208 explicit wxmDataObject(
const wxString &data);
213 wxCharBuffer m_databuf;
216 class MathMLDataObject2 :
public wxCustomDataObject
219 explicit MathMLDataObject2(
const wxString &data);
224 wxCharBuffer m_databuf;
229 class RtfDataObject :
public wxCustomDataObject
232 explicit RtfDataObject(
const wxString &data);
237 wxCharBuffer m_databuf;
240 class RtfDataObject2 :
public wxCustomDataObject
243 explicit RtfDataObject2(
const wxString &data);
248 wxCharBuffer m_databuf;
253 class RtfDataObject3 :
public wxCustomDataObject
256 explicit RtfDataObject3(
const wxString &data);
261 wxCharBuffer m_databuf;
265 bool m_hasFocus =
true;
269 long m_lastBottom = 0;
337 {
return TreeUndo(&GetTreeUndo().UndoStack(), &GetTreeUndo().RedoStack()); }
341 {
return TreeUndo(&GetTreeUndo().RedoStack(), &GetTreeUndo().UndoStack()); }
377 bool m_scrolledAwayFromEvaluation =
false;
384 CLICK_TYPE_GROUP_SELECTION,
385 CLICK_TYPE_INPUT_SELECTION,
386 CLICK_TYPE_INPUT_LABEL_SELECTION,
387 CLICK_TYPE_OUTPUT_SELECTION
399 std::unique_ptr<Cell>
CopySelection(
bool asData =
false)
const;
415 void OnTimer(wxTimerEvent &event);
417#if wxCHECK_VERSION(3, 1, 1)
419 void OnZoom(wxZoomGestureEvent &event);
422 void OnMouseExit(wxMouseEvent &event);
424 void OnMouseEnter(wxMouseEvent &event);
438 void OnPaint(wxPaintEvent &event);
453 void OnSize(wxSizeEvent &event);
455 void OnMouseRightDown(wxMouseEvent &event);
457 void OnSidebarKey(wxCommandEvent &event);
459 void OnMouseLeftUp(wxMouseEvent &event);
464 void OnMouseLeftDown(wxMouseEvent &event);
466 void OnMouseLeftInGcCell(wxMouseEvent &event,
GroupCell *clickedInGC);
468 void OnMouseLeftInGcLeft(wxMouseEvent &event,
GroupCell *clickedInGC);
470 void OnMouseLeftInGc(wxMouseEvent &event,
GroupCell *clickedInGC);
472 void OnMouseMotion(wxMouseEvent &event);
511 void SelectGroupCells(wxPoint down, wxPoint up);
521 void CheckUnixCopy();
523 void OnMouseMiddleUp(wxMouseEvent &event);
525 static bool IsLesserGCType(
int type,
int comparedTo);
544 wxPoint m_leftDownPosition;
547 wxPoint m_mousePoint;
558 bool m_leftDown =
false;
560 bool m_followEvaluation =
true;
561 bool m_mouseDrag =
false;
562 bool m_mouseOutside =
false;
568 int m_clickType = CLICK_TYPE_NONE;
571 bool m_blinkDisplayCaret =
true;
573 bool m_hCaretBlinkVisible =
true;
577 wxTimer m_caretTimer;
578 std::vector<wxString> m_completions;
579 bool m_autocompleteTemplates =
true;
585 {
return !GetTree() || (!GetTree()->
GetNext() && GetTree()->GetEditable()->
GetValue().Length() <= 1); }
589 if(m_autocompletePopup != NULL)
590 m_autocompletePopup->Destroy();
598 void OnChar(wxKeyEvent &event);
619 std::optional<Notification> m_notificationMessage;
629 void SetNotification(
const wxString &message,
int flags = wxICON_INFORMATION);
639 static std::mutex m_drawDCLock;
651 void FocusFindDialogue()
682 int IndexSearchStartedAt()
const
722 m_redrawStart = NULL;
723 m_fullRedrawRequested =
false;
818 bool CanUndo()
const;
820 bool CanRedo()
const;
830 void TreeUndo_ClearBuffers();
842 wxPoint pos = wxDefaultPosition, wxSize size = wxDefaultSize,
843 bool reactToEvents =
true);
851 wxTimer m_keyboardInactiveTimer;
858 std::unique_ptr<GroupCell>
CopyTree()
const;
886 void InsertLine(std::unique_ptr<Cell> &&newCell,
bool forceNewLine =
false);
943 void ResetInputPrompts();
962 bool CanPaste()
const
1009 void DeleteSelection();
1070 void Animate(
bool run =
true)
const;
1082 void PasteFromClipboard();
1090 bool Copy(
bool astext =
false)
const;
1139#if wxUSE_ENH_METAFILE
1141 bool CopyEMF()
const;
1152 wxSize CopyToFile(
const wxString &file)
const;
1154 wxSize CopyToFile(
const wxString &file,
Cell *start,
Cell *end,
bool asData =
false,
double scale = 1)
const;
1192 wxString
GetString(
bool lb =
false)
const;
1230 bool ActivatePrevInput() {
return ActivateInput(-1); }
1231 bool ActivateNextInput() {
return ActivateInput(+1); }
1232 wxString GetStatusText()
const {
return m_statusText;}
1233 bool StatusTextChangedHas() {
1234 bool retval = (m_statusTextHas != m_statusTextHas_old) ||
1235 (m_statusText != m_statusText_old);
1236 m_statusText_old = m_statusText;
1237 m_statusTextHas_old = m_statusTextHas;
1240 bool StatusTextHas()
const {
return m_statusTextHas;}
1253 wxTimer m_displayTimeoutTimer;
1255 template <
class T_SRC,
class T_DEST>
1256 inline std::unique_ptr<T_DEST> unique_cast(std::unique_ptr<T_SRC> &&src)
1258 if (!src)
return std::unique_ptr<T_DEST>();
1260 T_DEST *dest_ptr = &
dynamic_cast<T_DEST &
>(*src.get());
1262 (void) src.release();
1263 return std::unique_ptr<T_DEST>(dest_ptr);
1265 wxString m_statusText;
1266 wxString m_statusText_old;
1267 bool m_statusTextHas =
false;
1268 bool m_statusTextHas_old =
false;
1269 void StatusText(
const wxString &text){m_statusText = text; m_statusTextHas =
true;}
1270 void UnsetStatusText(){m_statusTextHas =
false;}
1271 bool ActivateInput(
int direction);
1278 m_scrollToCaret =
true;
1291 m_scrollToTopOfCell = scrollToTop;
1292 m_scrollToCaret =
false;
1387 void UndoInsideCell();
1395 void RedoInsideCell();
1410 {
return m_followEvaluation; }
1417 void ScrolledAwayFromEvaluation(
bool ScrolledAway);
1419 bool ScrolledAwayFromEvaluation()
const
1420 {
return m_scrolledAwayFromEvaluation; }
1424 bool IsSaved()
const
1427 void SetSaved(
bool saved)
1430 void OutputChanged()
1456 void AddDocumentToEvaluationQueue();
1501 void SetZoomFactor(
double newzoom);
1503 void CommentSelection();
1510 void OnScrollEvent(wxScrollWinEvent &ev);
1511 void CheckIfActiveCellScrolledOut();
1523 bool FindIncremental(
const wxString &str,
bool down,
bool ignoreCase,
bool searchInInput =
true,
bool searchInOutput =
true);
1524 bool FindIncremental_RegEx(
const wxString &str,
bool down,
bool searchInInput =
true,
bool searchInOutput =
true);
1544 bool FindNext(
const wxString &str,
bool down,
bool ignoreCase,
bool searchInInput =
true,
bool searchInOutput =
true,
bool warn =
true);
1545 bool FindNext_Regex(
const wxString &str,
const bool &down,
bool searchInInput =
true,
bool searchInOutput =
true,
bool warn =
true);
1551 void Replace(
const wxString &oldString,
const wxString &newString,
bool ignoreCase);
1552 void Replace_RegEx(
const wxString &oldString,
const wxString &newString);
1558 int ReplaceAll(
const wxString &oldString,
const wxString &newString,
bool ignoreCase,
bool searchInInput =
true,
bool searchInOutput =
true);
1559 int ReplaceAll_RegEx(
const wxString &oldString,
const wxString &newString,
bool searchInInput =
true,
bool searchInOutput =
true);
1573 wxString GetInputAboveCaret();
1575 wxString GetOutputAboveCaret();
1584 { m_autocomplete.
AddSymbol(fun, type); }
1593 void SetActiveCellText(
const wxString &text);
1595 bool InsertText(
const wxString &text);
1597 void OpenNextOrCreateCell();
1630 void SetMaximaDocDir(
const wxString &dir)
1632 m_maximaDocDir = dir;
1634 const wxString &GetMaximaDocDir()
const {
return m_maximaDocDir; }
1652 void UpdateScrollPos();
1663 wxString GetHelpfileAnchorName(
const wxString &keyword)
1664 {
return m_maximaManual.GetHelpfileAnchorName(keyword);}
1665 wxString GetHelpfileURL(
const wxString &keyword)
1666 {
return m_maximaManual.GetHelpfileURL(keyword);}
1670#if wxUSE_ACCESSIBILITY
1671 int GetAccessibilityId(
Cell *cell)
const;
1674#if wxUSE_ACCESSIBILITY
1675 class AccessibilityInfo:
public wxAccessible
1678 AccessibilityInfo(wxWindow *parent,
Worksheet *worksheet);
1679 wxAccStatus GetName (
int childId, wxString *name);
1680 wxAccStatus GetChildCount (
int *childCount);
1681 wxAccStatus GetChild (
int childId, wxAccessible **child);
1682 wxAccStatus GetDefaultAction(
int childId, wxString *actionName);
1683 wxAccStatus GetParent (wxAccessible ** parent);
1684 wxAccStatus GetFocus (
int *childId, wxAccessible **child);
1685 wxAccStatus GetLocation (wxRect &rect,
int elementId);
1686 wxAccStatus HitTest (
const wxPoint &pt,
1687 int *childId, wxAccessible **childObject);
1688 wxAccStatus GetDescription(
int childId, wxString *description);
1689 wxAccStatus GetRole(
int childId, wxAccRole *role);
1690 wxAccStatus GetState(
int childId,
long *state);
1692 wxWindow *m_parent = NULL;
1695 class CaretAccessibilityInfo :
public wxAccessible {
1697 CaretAccessibilityInfo(AccessibilityInfo* parent,
Worksheet* worksheet)
1698 : wxAccessible(worksheet->GetTargetWindow()), m_parent(parent), m_worksheet(worksheet) {}
1700 wxAccStatus GetName(
int childId, wxString *name)
override;
1701 wxAccStatus GetDescription(
int WXUNUSED(childId), wxString *description)
override;
1702 wxAccStatus GetParent(wxAccessible **parent)
override;
1703 wxAccStatus GetChildCount(
int *childCount)
override;
1704 wxAccStatus GetChild(
int childId, wxAccessible **child)
override;
1705 wxAccStatus GetRole(
int childId, wxAccRole *role)
override;
1707 AccessibilityInfo* m_parent;
1710 CaretAccessibilityInfo* m_caretAccessible =
nullptr;
1714 MaximaManual *GetMaximaManual() {
return &m_maximaManual;}
1716 void FocusTextControl();
1727 virtual wxSize DoGetBestClientSize()
const override;
1728#if wxUSE_ACCESSIBILITY
1729 AccessibilityInfo *m_accessibilityInfo = NULL;
1741wxDECLARE_EVENT(TOC_UPDATE_NEEDED_EVENT, wxCommandEvent);
This file declares the class AnimationCell.
This file declares the class AutoComplete.
The definition of the base class of all cells the worksheet consists of.
CellType
The supported types of math cells.
Definition: Cell.h:64
@ MC_TYPE_GROUP
A group cells that bundles several individual cells together.
Definition: Cell.h:82
This file contains the definition of the class EditorCell.
This file declares the class EventIDs that contains unique IDs for many events wxMaxima needs.
This file defines the class FindReplaceDialog.
This file defines the class GroupCell that bundles input and output in the worksheet.
GroupType
All types a GroupCell can be of.
Definition: GroupCell.h:43
This file declares the class MaximaManual.
This file defines the class Notification.
The definition of the class RecentDocuments that provides a recent files mechanism that is extensible...
std::list< TreeUndoAction > UndoActions
The type of the list of tree actions that can be undone.
Definition: TreeUndoAction.h:141
Declares TreeUndoManager: the owner of the cell-tree undo/redo state.
The file that contains the "variables" sidepane.
The worksheet's "between the cells" cursor (the horizontally drawn caret).
The narrow "something in the document changed" surface a WorksheetDocument needs to poke its view.
The document half of the worksheet: the state and commands that describe the edited document itself,...
The worksheet's layout engine: scheduling, the recalculation walk and the virtual-size update,...
The worksheet's search engine.
Definition: AnimationCell.h:46
Definition: Autocomplete.h:61
autoCompletionType
All types of things we can autocomplete.
Definition: Autocomplete.h:68
void AddSymbols(wxString xml)
Interprets the XML autocompletable symbol list maxima can send us.
Definition: Autocomplete.cpp:135
void AddSymbol(wxString fun, autoCompletionType type=command)
Manually add an autocompletable symbol to our symbols lists.
Definition: Autocomplete.cpp:686
A weak non-owning pointer that becomes null whenever the observed object is destroyed.
Definition: CellPtr.h:539
The base class all cell types the worksheet can consist of are derived from.
Definition: Cell.h:148
GroupCell * GetGroup() const
Returns the group cell this cell belongs to.
Definition: Cell.cpp:285
CellType GetType() const
Returns the type of this cell.
Definition: Cell.h:489
The configuration storage for the current worksheet.
Definition: Configuration.h:98
void ReadConfig()
Read the config from the wxConfig object.
Definition: Configuration.cpp:613
A list of editor cells containing error messages.
Definition: CellPointers.h:54
The document-model half of the cell-pointer registry.
Definition: CellPointers.h:50
TextCell * GetCurrentTextCell() const
The text cell the text maxima is currently sending us is being appended to.
Definition: CellPointers.cpp:134
const CellPtr< Cell > & GetSelectionStart() const
The first cell of the currently selected range of cells, or null. Returned by reference so callers ke...
Definition: CellPointers.h:93
const CellPtr< Cell > & GetSelectionEnd() const
The last cell of the currently selected range of cells, or null.
Definition: CellPointers.h:95
void SetCurrentTextCell(TextCell *cell)
Set the text cell maxima's incoming text is being appended to (may be null).
Definition: CellPointers.cpp:138
bool HasCellsSelected() const
Are any whole cells (as opposed to text inside an editor) selected?
Definition: CellPointers.h:88
void SetWorkingGroup(GroupCell *group)
Sets the cell maxima currently works on. NULL if there isn't such a cell.
Definition: CellPointers.cpp:146
ErrorList & GetErrorList()
The list of cells maxima has complained about errors in.
Definition: CellPointers.h:134
EditorCell * GetActiveCell() const
The editor cell the blinking text cursor is in, or null.
Definition: CellPointers.cpp:142
This class defines what the user sees as input cell.
Definition: EditorCell.h:62
const wxString & GetValue() const override
Returns the text contained in this cell.
Definition: EditorCell.h:225
bool CanCopy() const override
Select Can we copy the editable text of this cell?
Definition: EditorCell.h:377
A simple FIFO queue with manual removal of elements.
Definition: EvaluationQueue.h:43
The find+replace dialog.
Definition: FindReplaceDialog.h:42
The find+replace pane.
Definition: FindReplacePane.h:46
A cell grouping input (and, if there is one, also the output) cell to a foldable item.
Definition: GroupCell.h:88
GroupCell * GetNext() const
Get the next GroupCell in the list.
Definition: GroupCell.h:280
Definition: ImgCellBase.h:42
Definition: MaximaManual.h:59
void LoadHelpFileAnchors(const wxString &docdir, const wxString &maximaVersion)
Search maxima's help file for command and variable names.
Definition: MaximaManual.cpp:538
A class that maintains a list of recent documents.
Definition: RecentDocuments.h:42
A Text cell.
Definition: TextCell.h:38
Owns the cell-tree undo/redo stacks and the active-cell snapshot.
Definition: TreeUndoManager.h:51
void ClearUndoActionList()
Clear the list of actions that can be undone.
Definition: TreeUndoManager.h:94
void ClearRedoActionList()
Clear the list of actions that can be redone.
Definition: TreeUndoManager.h:87
static void AppendAction(UndoActions *actionList)
Mark the newest action of the list as part of the following atomic action.
Definition: TreeUndoManager.h:77
The view/interaction half of the cell-pointer registry.
Definition: CellPointers.h:187
const CellPtr< EditorCell > & MouseSelectionStart() const
The EditorCell a mouse selection was started in, or null.
Definition: CellPointers.h:214
int IndexSearchStartedAt() const
The cursor position an incremental search was started at (-1 = none).
Definition: CellPointers.h:202
const CellPtr< EditorCell > & KeyboardSelectionStart() const
The EditorCell a keyboard selection was started in, or null.
Definition: CellPointers.h:223
const CellPtr< EditorCell > & SearchStart() const
The EditorCell an incremental search was started in, or null.
Definition: CellPointers.h:200
void SetScrollToCellScheduled(bool scheduled)
Schedule (or cancel) scrolling to CellToScrollTo().
Definition: CellPointers.h:197
The between-the-cells cursor: active flag, position, selection anchors.
Definition: WorksheetCursor.h:49
bool IsActive() const
Is this (rather than the in-cell text cursor) the active cursor?
Definition: WorksheetCursor.h:52
The view notifications a WorksheetDocument emits when it edits itself.
Definition: WorksheetDocumentView.h:50
The view-independent state and commands of an edited worksheet document.
Definition: WorksheetDocument.h:61
bool CanMergeSelection() const
Can the current selection (of more than one cell) be merged into one?
Definition: WorksheetDocument.cpp:361
CellPtr< GroupCell > & LastCache() const
The cached pointer to the document's last GroupCell (<0 = unknown).
Definition: WorksheetDocument.h:93
bool CanRedoInsideCell() const
Can the active cell's own (intra-cell) redo be invoked right now?
Definition: WorksheetDocument.cpp:390
void SetSaved(bool saved)
Record whether the document is in its saved state.
Definition: WorksheetDocument.cpp:34
void FoldAll()
Recursively folds every foldable cell in the document.
Definition: WorksheetDocument.cpp:317
void UnfoldAll()
Recursively unfolds every folded cell in the document.
Definition: WorksheetDocument.cpp:326
bool QuestionPending() const
Is Maxima currently waiting for an answer to a question?
Definition: WorksheetDocument.h:215
bool CanUndoInsideCell() const
Can the active cell's own (intra-cell) undo be invoked right now?
Definition: WorksheetDocument.cpp:386
bool IsSaved() const
True while the document has no unsaved changes.
Definition: WorksheetDocument.h:226
void SetCurrentFile(const wxString &file)
Record the file this document is associated with.
Definition: WorksheetDocument.h:205
EvaluationQueue & GetEvaluationQueue()
The list of cells scheduled to be sent to Maxima for evaluation.
Definition: WorksheetDocument.h:64
GroupCell * Unfold(GroupCell *which)
Unfold which; see GroupCell::Unfold(). Mirrors Fold().
Definition: WorksheetDocument.cpp:277
bool IsSelectionInWorkingGroup() const
Is the selection start inside the group Maxima is currently evaluating?
Definition: WorksheetDocument.cpp:381
DocumentCellPointers & GetCellPointers()
The document-model half of the cell-pointer registry (selection, the active/answer/current-text cell,...
Definition: WorksheetDocument.h:221
bool IsSelected(CellType type) const
Is the selection exactly one cell of the given type?
Definition: WorksheetDocument.cpp:374
GroupCell * ToggleFold(GroupCell *which)
Fold or unfold which, whichever it currently isn't; see GroupCell::Fold()/Unfold().
Definition: WorksheetDocument.cpp:292
TreeUndoManager & GetTreeUndo()
The document's undo/redo history of tree-structure edits.
Definition: WorksheetDocument.h:69
const wxString & GetCurrentFile() const
The file this document was last loaded from / saved to (empty if none).
Definition: WorksheetDocument.h:203
std::unique_ptr< GroupCell > & TreeOwner()
Mutable access to the owning pointer of the cell tree.
Definition: WorksheetDocument.h:87
const wxString & GetLastQuestion() const
The text of the Maxima question the user is currently being asked.
Definition: WorksheetDocument.h:208
bool CanDeleteSelection() const
Can the current selection be deleted right now (see CanRemoveCells())?
Definition: WorksheetDocument.cpp:353
bool CanEdit() const
Is exactly one cell selected, and does it directly follow Maxima's own input prompt (as opposed to be...
Definition: WorksheetDocument.cpp:335
void SetQuestionPending(bool pending)
Record whether Maxima is waiting for an answer to a question.
Definition: WorksheetDocument.h:217
WorksheetCursor & GetCursor()
The between-cells cursor (the h-caret) and its group-level selection.
Definition: WorksheetDocument.h:74
GroupCell * GetTree() const
The first GroupCell of the document (null when the document is empty).
Definition: WorksheetDocument.h:79
void SetLastQuestion(const wxString &lastQuestion)
Remember the text of the question Maxima is currently asking.
Definition: WorksheetDocument.h:210
GroupCell * ToggleFoldAll(GroupCell *which)
Like ToggleFold(), but folds/unfolds which's whole subtree.
Definition: WorksheetDocument.cpp:299
void OutputChanged()
Note that a cell's output changed.
Definition: WorksheetDocument.h:241
GroupCell * Fold(GroupCell *which)
Fold which; see GroupCell::Fold().
Definition: WorksheetDocument.cpp:262
The layout/recalculation engine of a worksheet.
Definition: WorksheetLayout.h:54
void RequestFullRecalculation()
Schedule a recalculation of the whole worksheet.
Definition: WorksheetLayout.cpp:237
void RequestAdjustSize()
Flag the virtual (scroll) size as needing re-adjustment.
Definition: WorksheetLayout.h:143
void RequestRecalculation(Cell *start)
Schedule a recalculation of the worksheet starting with the cell start.
Definition: WorksheetLayout.cpp:179
void GetMaxPoint(int *width, int *height)
Get the coordinates of the bottom right point of the worksheet.
Definition: WorksheetLayout.cpp:259
void UpdateConfigurationClientSize()
Inform the configuration about the view's current client size.
Definition: WorksheetLayout.cpp:246
int GetLastCellsVisited() const
GroupCells walked by the most recent RecalculateIfNeeded() pass (visited includes cheap reposition-on...
Definition: WorksheetLayout.h:156
void AdjustSize()
Adjust the virtual size and scrollbars to the document's extent.
Definition: WorksheetLayout.cpp:305
bool RecalculateIfNeeded(bool timeout=false, long timeSliceMs=50)
Perform the scheduled recalculation, if one is pending.
Definition: WorksheetLayout.cpp:41
The narrow view surface the worksheet's layout pipeline needs.
Definition: WorksheetSizeMath.h:172
The canvas that contains the spreadsheet the whole program is about.
Definition: Worksheet.h:116
bool IsActiveInLast() const
Is the editor active in the last cell of the worksheet?
Definition: Worksheet.h:1339
GroupCell * ToggleFold(GroupCell *which)
Fold or unfold a cell.
Definition: Worksheet.h:1492
void OnTimer(wxTimerEvent &event)
Is executed if a timer associated with Worksheet has expired.
Definition: Worksheet.cpp:3368
void ClearSelection()
Clear the selection - make it empty, i.e. no selection.
Definition: Worksheet.h:1212
const wxString UnicodeToMaxima(wxString s)
Make a few unicode characters interpretable by maxima.
Definition: Worksheet.cpp:3770
bool CanMergeSelection() const
Can we merge the selected cells into one?
Definition: Worksheet.h:816
bool IsSelectionInWorkingGroup() const
Is the selection in the current working group?
Definition: Worksheet.h:1349
int GetLastCellsRecalculated() const
How many cells the last layout pass truly recalculated. See WorksheetLayout.
Definition: Worksheet.h:935
void SetViewScrollRate(int rate) override
Set the scroll granularity (device pixels per scroll unit) on both axes.
Definition: Worksheet.h:126
ImgCellBase * GetSelectedImgCellBase() const
Returns the selected cell - or NULL, if the selection isn't image nor animation.
Definition: Worksheet.h:1042
wxString RTFStart() const
The start of a RTF document.
Definition: Worksheet.cpp:6134
int m_pointer_x
The x position of the mouse pointer.
Definition: Worksheet.h:1732
void SetDefaultHCaret()
Set the HCaret to its default location, at the end of the document.
Definition: Worksheet.cpp:4939
bool CanDeleteRegion(GroupCell *start, const GroupCell *end) const
Is it possible to delete the cells between start and end?
Definition: Worksheet.cpp:2125
void AddSectionToEvaluationQueue(GroupCell *start)
Adds a chapter, a section or a subsection to the evaluation queue.
Definition: Worksheet.cpp:4062
void AddSymbols(const wxString &xml)
Add a xml-encoded list of symbols to the autocompletion list.
Definition: Worksheet.h:1587
virtual ~Worksheet()
The destructor.
Definition: Worksheet.cpp:535
bool CutToClipboard()
Add the currently selected cells to the clipboard and delete them.
Definition: Worksheet.cpp:4637
void GetViewPosition(int *x, int *y) const override
The view's position within its parent, in device pixels (wxWindow::GetPosition).
Definition: Worksheet.h:127
WorksheetDocument m_document
The view-independent document state (file, current question, ...) that Worksheet's document accessors...
Definition: Worksheet.h:1720
FindReplacePane * m_findPane
The dockable find-and-replace sidebar (GH #2249), set once by wxMaximaFrame at startup and never dest...
Definition: Worksheet.h:806
std::unique_ptr< wxDataObject > CreateCellsDataObject() const
Build the multi-format clipboard object for a whole-cell selection.
Definition: Worksheet.cpp:2038
GroupCell * GetInsertGroup() const
The group that the line's cells will belong to - used by InsertLine.
Definition: Worksheet.cpp:959
void OnCharNoActive(wxKeyEvent &event)
Key pressed and no cell was active.
Definition: Worksheet.cpp:2892
bool QuestionPending() const
Does maxima wait for the answer of a question?
Definition: Worksheet.h:1620
void AddEntireDocumentToEvaluationQueue()
Schedule all cells in the document for evaluation.
Definition: Worksheet.cpp:4053
GroupCell * FirstVisibleGC()
The first groupCell that is currently visible.
Definition: Worksheet.cpp:1490
void UpdateConfigurationClientSize()
Inform the configuration about the current client size.
Definition: Worksheet.h:1224
int ReplaceAll(const wxString &oldString, const wxString &newString, bool ignoreCase, bool searchInInput=true, bool searchInOutput=true)
Replace all occurrences of a string.
Definition: Worksheet.cpp:5411
void AddSymbols(wxXmlDocument xml)
Add a xml-encoded list of symbols to the autocompletion list.
Definition: Worksheet.h:1590
void LoadHelpFileAnchors(const wxString &docdir, const wxString &maximaVersion)
Tries to parse maxima's manual in order to find out which anchors it contains.
Definition: Worksheet.h:1661
bool ExportToHTML(const wxString &file)
Export the file to an html document.
Definition: Worksheet.cpp:3739
void OpenHCaret(const wxString &txt={})
Place the cursor into a new cell where the horizontal cursor is.
Definition: Worksheet.h:1367
void NotifyAdjustSizeNeeded() override
The scrollable size will need re-adjusting once cell positions settle.
Definition: Worksheet.h:135
void ApplyOverlayScrollbarsSetting()
Apply the configuration's OverlayScrollbars() choice to this window.
Definition: Worksheet.cpp:510
TextCell * GetSelectedTextCell() const
Returns the selected cell - or NULL, if the selection isn't a text cell.
Definition: Worksheet.h:1050
void ScrollToError()
Unfold the cell that produced the error, if necessary and, if requested, scroll to it.
Definition: Worksheet.cpp:899
bool HCaretActive() const
Is the vertically-drawn cursor active?
Definition: Worksheet.h:809
void OnEraseBackground(wxEraseEvent &WXUNUSED(event))
Cannot be static as it is called using a function pointer to an object.
Definition: Worksheet.h:518
void ClearDocument()
Empties the current document.
Definition: Worksheet.cpp:1088
wxString RTFEnd() const
The end of a RTF document.
Definition: Worksheet.cpp:6138
ViewCellPointers m_viewCellPointers
The transient view-state half of the cell-pointer registry (hover, selection anchors,...
Definition: Worksheet.h:1724
void UpdateTableOfContents()
Update the table of contents.
Definition: Worksheet.cpp:6464
void RemoveAllOutput()
Remove all output cells from the whole worksheet.
Definition: Worksheet.cpp:5012
Cell * GetSelectionEnd() const
Return the last of the currently selected cells.
Definition: Worksheet.h:1208
void QuestionPending(bool pending)
Does maxima currently wait for the answer of a question?
Definition: Worksheet.h:1627
void ClickNDrag(wxPoint down, wxPoint up)
Select the rectangle surrounded by down and up.
Definition: Worksheet.cpp:1642
FindReplacePane * GetActiveFindPane() const
Whichever find/replace UI is actually in use right now: the dockable sidebar (GH #2249) if Configurat...
Definition: Worksheet.cpp:5217
DocumentCellPointers & GetDocumentCellPointers()
The document-model half of the cell-pointer registry (owned by m_document).
Definition: Worksheet.h:686
const wxString & GetCurrentFile() const
The name of the currently-opened file.
Definition: Worksheet.h:785
void SetCurrentFile(const wxString &file)
Set the name of the currently-opened file.
Definition: Worksheet.h:787
RecentDocuments & UnsavedDocuments()
The list of unsaved (autosaved) documents offered for recovery.
Definition: Worksheet.h:139
bool CopyHTML() const
Copy a self-contained HTML version (inline CSS, base64-embedded images – see WorksheetExport::Selecti...
Definition: Worksheet.cpp:3545
void DeleteCurrentCell()
Delete the currently active cell - or the cell above this one.
Definition: Worksheet.cpp:2110
AutoComplete & GetAutocomplete()
The storage for the autocompletion feature.
Definition: Worksheet.h:662
AnimationCell * GetSelectedAnimation() const
Returns the selected cell - or NULL, if the selection isn't an animation.
Definition: Worksheet.h:1026
void Replace(const wxString &oldString, const wxString &newString, bool ignoreCase)
Replace the current occurrence of a string.
Definition: Worksheet.cpp:5377
bool CopyMatlab() const
Copy a Matlab representation of the current selection to the clipboard.
Definition: Worksheet.cpp:1930
bool CopyText() const
Copy a textual representation of the current selection to the clipboard.
Definition: Worksheet.cpp:1993
bool m_inPopupMenu
Is there an active popup menu?
Definition: Worksheet.h:1738
EvaluationQueue & GetEvaluationQueue()
The list of cells that have to be evaluated.
Definition: Worksheet.h:1480
void Animate(bool run=true) const
Animate the current slide show.
Definition: Worksheet.cpp:4916
static GroupCell * StartOfSectioningUnit(GroupCell *start)
Finds the start of the current chapter/section/...
Definition: Worksheet.cpp:2507
bool CopyRTF() const
Copy a rtf version of the current selection to the clipboard.
Definition: Worksheet.cpp:3514
void UpdateConfig()
Re-read the configuration.
Definition: Worksheet.h:767
int m_pointer_y
The y position of the mouse pointer.
Definition: Worksheet.h:1734
bool Copy(bool astext=false) const
Copy the current selection to the clipboard.
Definition: Worksheet.cpp:1749
bool CopyAnimation() const
Copy the current animation to the clipboard.
Definition: Worksheet.cpp:3492
void StepAnimation(int change=1)
Set the slide of the currently selected animation or advance it by one step.
Definition: Worksheet.cpp:3342
GroupCell * Unfold(GroupCell *which)
Unfold a cell (see WorksheetDocument::Unfold())
Definition: Worksheet.h:1489
void SelectEditable(EditorCell *editor, bool up)
Is called when a hCursor is active and we have a WXK_UP/WXK_DOWN event.
Definition: Worksheet.cpp:2861
void SetAnswer(const wxString &answer)
Handling questions from and answers for maxima.
Definition: Worksheet.cpp:2234
ViewCellPointers & GetViewCellPointers()
The transient view-state half of the cell-pointer registry (owned here).
Definition: Worksheet.h:689
void OnChar(wxKeyEvent &event)
Key for a printable character pressed.
Definition: Worksheet.cpp:3226
void SelectWithChar(int ccode)
Handle selecting text using the keyboard Is called when the all of the following is true:
Definition: Worksheet.cpp:2776
void AddSelectionToEvaluationQueue()
Schedule all cells in the selection to be evaluated.
Definition: Worksheet.cpp:4091
bool HasCellsSelected() const
Is at least one entire cell selected?
Definition: Worksheet.h:975
std::optional< Notification > & GetNotification()
The error notification message, if any.
Definition: Worksheet.h:616
void OnSetFocus(wxFocusEvent &event)
What to do if the worksheet is in the input focus.
Definition: Worksheet.cpp:4876
void SetNotification(const wxString &message, int flags=wxICON_INFORMATION)
Inform the user that something happened in a non-active window.
Definition: Worksheet.cpp:3204
bool IsSelected(CellType type) const
Does the selection start with a cell of the type "type".
Definition: Worksheet.h:1328
void ScheduleScrollToCell(Cell *cell, bool scrollToTop=true)
Schedules scrolling to a given cell.
Definition: Worksheet.h:1288
int GetViewScrollUnitY() const override
The current vertical scroll position, in scroll units (not pixels).
Definition: Worksheet.h:122
GroupCell * InsertGroupCells(std::unique_ptr< GroupCell > &&cells, GroupCell *where, UndoActions *undoBuffer)
Insert group cells into the worksheet.
Definition: Worksheet.cpp:879
void AddDocumentTillHereToEvaluationQueue()
Schedule all cells stopping with the one the caret is in for evaluation.
Definition: Worksheet.cpp:4107
void OnComplete(wxCommandEvent &event)
Is called if an action from the autocomplete menu is selected.
Definition: Worksheet.cpp:5874
bool CanAnimate() const
Does it make sense to enable the "Play" button and the slider now?
Definition: Worksheet.h:1058
bool RecalculateIfNeeded(bool timeout=false, long timeSliceMs=50)
Actually recalculate the worksheet.
Definition: Worksheet.h:906
bool m_mouseMotionWas
Was there a mouse motion we didn't react to until now?
Definition: Worksheet.h:1736
void SelectAll()
Select the whole document.
Definition: Worksheet.cpp:4799
void OnKillFocus(wxFocusEvent &event)
What to do if the worksheet looses the input focus.
Definition: Worksheet.cpp:4888
void InsertLine(std::unique_ptr< Cell > &&newCell, bool forceNewLine=false)
Add a new line to the output cell of the working group.
Definition: Worksheet.cpp:968
void ClearNotification()
Clears the notification message from SetNotification.
Definition: Worksheet.cpp:3202
void OnPaint(wxPaintEvent &event)
Is called by wxWidgets when it wants to redraw the worksheet or a part of it.
Definition: Worksheet.cpp:578
void OnFollow()
Called when the "Scroll to currently evaluated" button is pressed.
Definition: Worksheet.cpp:6058
void PrepareDrawGC(wxDC &dc) const
All that has need to be done before drawing a GroupCell in a DC.
Definition: Worksheet.cpp:755
void OnCharInActive(wxKeyEvent &event)
Key pressed inside a cell.
Definition: Worksheet.cpp:2551
Cell * GetSelectionStart() const
Return the first of the currently selected cells.
Definition: Worksheet.h:1201
void FoldOccurred()
Call when a fold action was detected, to update the state in response to a fold occurring.
Definition: Worksheet.cpp:1177
void OnMouseCaptureLost(wxMouseCaptureLostEvent &event)
Is called if we loose the mouse connection whilst selecting text/cells.
Definition: Worksheet.cpp:6142
wxTimer & KeyboardInactiveTimer()
The timer that tells us when the keyboard is inactive so an autosave isn't disrupting.
Definition: Worksheet.h:849
ClickType
An enum for all classes of items one can click on.
Definition: Worksheet.h:382
ImgCell * GetSelectedImgCell() const
Returns the selected cell - or NULL, if the selection isn't an image.
Definition: Worksheet.h:1034
Cell * FindCellByUUID(const wxString &uuid)
Find a cell by its UUID.
Definition: Worksheet.cpp:4155
void EraseBackground(wxEraseEvent &event)
Is called if wxWidgets wants to erase the worksheet's background.
Definition: Worksheet.cpp:313
bool CanDeleteSelection() const
Is it possible to delete the currently selected cells?
Definition: Worksheet.h:1017
ToolBar * m_mainToolBar
The toolbar of the main window: We need to access it and therefore have it defined here.
Definition: Worksheet.h:1603
bool CaretVisibleIs()
Is the caret (hcaret or vcaret) currently visible on the worksheet?
Definition: Worksheet.cpp:5313
EditorCell * GetActiveCell() const
Get the currently active EditorCell.
Definition: Worksheet.h:670
bool UpdateControlsNeeded()
Is an update of the worksheet controls needed?
Definition: Worksheet.h:144
bool CopyCells() const
Copy the selection to the clipboard as it would appear in a .wxm file.
Definition: Worksheet.cpp:2022
bool OpenQuestionCaret(const wxString &txt={})
Move the cursor to the question maxima currently asks and if needed add a cell for user input.
Definition: Worksheet.cpp:2249
bool FindIncremental(const wxString &str, bool down, bool ignoreCase, bool searchInInput=true, bool searchInOutput=true)
Do an incremental search from the cursor or the point the last search started at.
Definition: Worksheet.cpp:5154
GroupCell * GetLastCell()
Returns the last cell of the worksheet.
Definition: Worksheet.h:1343
GroupCell * GetHCaret()
The cell the horizontal cursor is above. NULL means at the start of the document.
Definition: Worksheet.cpp:4922
wxString ConvertSelectionToMathML() const
Convert the current selection to MathML.
Definition: Worksheet.cpp:1835
bool CanUndoInsideCell() const
Is it possible to issue an undo in the currently selected cell?
Definition: Worksheet.h:1385
void SetHCaret(GroupCell *where)
Set the HCaret at the location of the given Cell.
Definition: Worksheet.cpp:4949
bool CanRedoInsideCell() const
Is it possible to issue an undo in the currently selected cell?
Definition: Worksheet.h:1393
bool GCContainsCurrentQuestion(const GroupCell *cell)
Does the GroupCell cell points to contain the question currently asked by maxima?
Definition: Worksheet.cpp:2479
bool WillAutoAnswer() const
Execute all collected scroll events in one go.
Definition: Worksheet.cpp:2242
bool IsEmpty() const
Is this worksheet empty?
Definition: Worksheet.h:584
void NumberSections() const
Renumber all sections.
Definition: Worksheet.cpp:1121
void SetViewVirtualSize(int width, int height) override
Set the scrollable (virtual) area, in device pixels.
Definition: Worksheet.h:124
void OnKeyDown(wxKeyEvent &event)
A special key has been pressed.
Definition: Worksheet.cpp:2374
EditorCell * KeyboardSelectionStart() const
Tells us which cell the keyboard selection has started in.
Definition: Worksheet.h:673
void SetSelection(Cell *sel)
Select the cell sel.
Definition: Worksheet.h:1215
void AddCellToEvaluationQueue(GroupCell *gc)
Schedule this cell for evaluation.
Definition: Worksheet.cpp:4125
void SetCellStyle(GroupCell *group, GroupType style)
Change the style of a cell.
Definition: Worksheet.cpp:2167
bool Autocomplete(AutoComplete::autoCompletionType type=AutoComplete::command)
Definition: Worksheet.cpp:5619
wxBitmap m_memory
A memory we can manually buffer the contents of the area that is to be redrawn in.
Definition: Worksheet.h:1726
void LoadSymbols()
Compile a list of known autocompletion symbols.
Definition: Worksheet.cpp:3768
void SelectGroupCell(GroupCell *cell)
Set this cell as the currently selected one.
Definition: Worksheet.cpp:6044
void ShowPoint(wxPoint point)
Scrolls to a point on the worksheet.
Definition: Worksheet.cpp:4588
void WindowActive(bool active)
Is this window active?
Definition: Worksheet.h:622
bool ExportToTeX(const wxString &file)
export to a LaTeX file
Definition: Worksheet.cpp:3761
void AdjustSize()
Adjust the virtual size and scrollbars; see WorksheetLayout::AdjustSize().
Definition: Worksheet.h:515
void ShowHCaret()
Activates the horizontal cursor.
Definition: Worksheet.cpp:4981
TimerIDs
An enum of individual IDs for all timers this class handles.
Definition: Worksheet.h:392
void CodeCellVisibilityChanged()
To be called after enabling or disabling the visibility of code cells.
Definition: Worksheet.cpp:3749
void ScrollToCaret()
Request to scroll to the cursor as soon as wxMaxima is idle.
Definition: Worksheet.h:1275
void MarkRefreshAsDone()
Handle redrawing the worksheet or of parts of it.
Definition: Worksheet.h:720
bool CopyMathML() const
Copy the MathML representation of the current selection to the clipboard.
Definition: Worksheet.cpp:1903
bool CopyBitmap() const
Copy a bitmap of the current selection to the clipboard.
Definition: Worksheet.cpp:3485
bool CanCopyAsMathML() const
Would "Copy as MathML" of the current selection produce actual math?
Definition: Worksheet.cpp:1884
void GetViewClientSize(int *width, int *height) const override
The visible client area, in device pixels.
Definition: Worksheet.h:120
GroupCell * Fold(GroupCell *which)
Fold a cell (see WorksheetDocument::Fold())
Definition: Worksheet.h:1486
bool PointVisibleIs(wxPoint point)
Is the point currently visible on the worksheet?
Definition: Worksheet.cpp:4567
std::unique_ptr< Cell > CopySelection(bool asData=false) const
Copy the currently selected cells.
Definition: Worksheet.cpp:3661
GroupCell * GetLastCellInWorksheet() const
Returns a pointer to the last cell of this worksheet.
Definition: Worksheet.cpp:1637
void ScrollToStart()
Scroll to the start of the worksheet.
Definition: Worksheet.h:796
void NotifyRecalculation(GroupCell *start) override
Schedule a re-layout of the document starting at start (null = all).
Definition: Worksheet.h:132
void AddSymbol(const wxString &fun, AutoComplete::autoCompletionType type=AutoComplete::command)
Add a symbol to the autocompletion list.
Definition: Worksheet.h:1583
bool CanEdit() const
We can edit the input if the we have the whole input in selection!
Definition: Worksheet.h:1228
bool FindNext(const wxString &str, bool down, bool ignoreCase, bool searchInInput=true, bool searchInOutput=true, bool warn=true)
Find the next occurrence of a string.
Definition: Worksheet.cpp:5247
bool SectioningMoveIn(GroupCell *parent)
Make this chapter/section/... a section/subsection/... changing its subheadings, too.
Definition: Worksheet.cpp:5911
wxBitmap ConvertSelectionToBitmap() const
Convert the current selection to a bitmap.
void RequestRedraw(GroupCell *start=NULL)
Request the worksheet to be redrawn.
Definition: Worksheet.cpp:482
bool RedrawIfRequested()
Redraw the worksheet if RequestRedraw() has been called.
Definition: Worksheet.cpp:325
bool ExportToMAC(const wxString &file)
Export the file to a text file maxima's load command can read.
Definition: Worksheet.cpp:3894
void SetActiveCell(EditorCell *cell)
Mark an editor cell as the active one.
Definition: Worksheet.cpp:4483
FindReplaceDialog * m_findDialog
The find-and-replace-dialog.
Definition: Worksheet.h:802
void DrawGroupCell(wxDC &dc, wxDC &adc, GroupCell &cell)
Draws a groupcell on the DC.
Definition: Worksheet.cpp:821
void QuestionAnswered()
Mark the current question from maxima as "answered"..
Definition: Worksheet.cpp:2483
void DeleteRegion(GroupCell *start, GroupCell *end, UndoActions *undoBuffer)
Definition: Worksheet.cpp:2198
bool ScrollToCaretIfNeeded()
Scrolls to the cursor, if requested.
Definition: Worksheet.cpp:5347
void NotifyRedraw(GroupCell *start) override
Schedule a redraw of the document starting at start (null = all).
Definition: Worksheet.h:134
std::unique_ptr< GroupCell > CopyTree() const
Copies the worksheet's entire contents.
Definition: Worksheet.cpp:3481
GroupCell * EndOfSectioningUnit(GroupCell *start)
Finds the end of the current chapter/section/...
Definition: Worksheet.cpp:2524
std::vector< wxString > m_replacementsForCurrentWord
Suggestions for how the word that was right-clicked on could continue.
Definition: Worksheet.h:1669
int ExportSelectionOutputToDir(const wxString &dir, bool svg)
Write each selected group cell's output to an image file in a folder.
Definition: Worksheet.cpp:3606
void ForceRedraw()
Redraw the window now and mark any pending redraw request as "handled".
Definition: Worksheet.h:757
bool CopyTeX() const
Copy the TeX representation of the current selection to the clipboard.
Definition: Worksheet.cpp:1958
void AddRestToEvaluationQueue()
Add all cells below the cursor to the evaluation queue.
Definition: Worksheet.cpp:4071
void ScrollToCellIfNeeded()
Scrolls to the cell given by ScheduleScrollToCell; Is called once we have time to do so.
Definition: Worksheet.cpp:4177
void DrawGroupCell_UsingBitmap(wxDC *dc, GroupCell *cell)
Draws a groupcell in a bitmap and then blits it onto the DC.
Definition: Worksheet.cpp:770
void GetMaxPoint(int *width, int *height)
Get the coordinates of the bottom right point of the worksheet.
Definition: Worksheet.h:412
void OnMouseWheel(wxMouseEvent &event)
Called if the mouse wheel sents events.
Definition: Worksheet.cpp:1524
void RequestRecalculation()
Schedule a recalculation of the whole worksheet.
Definition: Worksheet.h:930
void CloseAutoCompletePopup()
Close the autocompletion pop-up if it is currently open.
Definition: Worksheet.h:587
bool SectioningMoveOut(GroupCell *parent)
Make this section/subsection/... a chapter/section/... changing its subheadings, too.
Definition: Worksheet.cpp:5953
bool FollowEvaluation() const
Query if we want to automatically scroll to the cell that is currently evaluated.
Definition: Worksheet.h:1409
void DestroyTree()
Clear the whole worksheet.
Definition: Worksheet.cpp:3472
wxString GetString(bool lb=false) const
Convert the current selection to a string.
Definition: Worksheet.cpp:1731
void NotifySavedStateChanged() override
The document's saved-state flipped; refresh the controls that show it.
Definition: Worksheet.h:136
int GetLastCellsVisited() const
How many cells the last layout pass visited. See WorksheetLayout.
Definition: Worksheet.h:933
std::unique_ptr< wxDataObject > CreateSelectionDataObject() const
Build the multi-format clipboard object for a non-cell selection.
Definition: Worksheet.cpp:1778
GroupCell * GetWorkingGroup(bool resortToLast=false) const
Returns the cell maxima currently works on.
Definition: Worksheet.cpp:937
bool CopySVG() const
Copy a svg of the current selection to the clipboard.
Definition: Worksheet.cpp:3500
void Evaluate()
Trigger the evaluation of the current cell(s)
Definition: Worksheet.cpp:2365
void OnScrollChanged(wxScrollEvent &ev)
Called if the user is using the scrollbar for scrolling through the document.
Definition: Worksheet.cpp:5080
void OnDoubleClick(wxMouseEvent &event)
Is called on double click on a cell.
Definition: Worksheet.cpp:3970
void OnActivate(wxActivateEvent &event)
Is called if this element looses or gets the focus.
Definition: Worksheet.cpp:4941
void AddToEvaluationQueue(GroupCell *cell)
Adds a group cell to the evaluation queue marking its contents as "outdated".
Definition: Worksheet.cpp:4046
void RequestRecalculation(Cell *start)
Schedule a recalculation of the worksheet starting with the cell start.
Definition: Worksheet.h:919
void AnonymizeCodeCells()
Anonymize the code cells in the current selection for a bug report (GH #1339).
Definition: Worksheet.cpp:5495
bool CanTreeRedo() const
Can we redo a tree operation?
Definition: Worksheet.cpp:4296
void TreeUndo_CellEntered()
The cursor has entered one cell => save the value to see if it has changed.
Definition: Worksheet.cpp:2158
void TreeUndo_AppendAction()
Add another action to this undo action.
Definition: Worksheet.h:309
bool TreeUndoTextChange(UndoActions *sourcelist, UndoActions *undoForThisOperation)
Undo a text change.
Definition: Worksheet.cpp:4388
bool TreeUndo()
Undo a tree operation.
Definition: Worksheet.h:336
void TreeUndo_ClearRedoActionList()
Clear the list of actions for which an undo can be undone.
Definition: Worksheet.h:303
bool CanTreeUndo() const
Can we undo a tree operation?
Definition: Worksheet.cpp:4292
void TreeUndo_CellLeft()
The cursor is about to leave the current cell => Store the change if the value has changed.
Definition: Worksheet.cpp:2143
void TreeUndo_ClearUndoActionList()
Clear the list of actions for which undo can undo.
Definition: Worksheet.h:306
bool TreeUndoCellAddition(UndoActions *sourcelist, UndoActions *undoForThisOperation)
Undo adding cells.
Definition: Worksheet.cpp:4324
bool TreeUndoCellDeletion(UndoActions *sourcelist, UndoActions *undoForThisOperation)
Undo a call deletion.
Definition: Worksheet.cpp:4311
bool TreeRedo()
Redo an undone tree operation.
Definition: Worksheet.h:340
void TreeUndo_MarkCellsAsAdded(GroupCell *start, GroupCell *end, UndoActions *undoBuffer)
Remember that these cells were just added so this addition can be undone.
Definition: Worksheet.cpp:2134
bool TreeUndoFold(UndoActions *sourcelist, UndoActions *undoForThisOperation)
Undo a fold or unfold (GH #266)
Definition: Worksheet.cpp:4359
Where a search starts: a group plus what the cursor is doing there.
Definition: WorksheetSearch.h:113
A search match: the group it is in and the matching part.
Definition: WorksheetSearch.h:97