wxMaxima
Loading...
Searching...
No Matches
GroupCell.h
Go to the documentation of this file.
1// -*- mode: c++; c-file-style: "linux"; c-basic-offset: 2; indent-tabs-mode: nil -*-
2//
3// Copyright (C) 2008-2015 Andrej Vodopivec <andrej.vodopivec@gmail.com>
4// (C) 2012 Doug Ilijev <doug.ilijev@gmail.com>
5// (C) 2014-2015 Gunter Königsmann <wxMaxima@physikbuch.de>
6//
7// This program is free software; you can redistribute it and/or modify
8// it under the terms of the GNU General Public License as published by
9// the Free Software Foundation; either version 2 of the License, or
10// (at your option) any later version.
11//
12// This program is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16//
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21//
22// SPDX-License-Identifier: GPL-2.0+
23
30#ifndef GROUPCELL_H
31#define GROUPCELL_H
32
33#include <utility>
34#include <memory>
35#include <vector>
36#include "Cell.h"
37#include "EditorCell.h"
38#include <unordered_map>
39
41// This enum's elements must be synchronized with (WXMFormat.h) WXMHeaderId.
42enum GroupType : int8_t
43{
44 GC_TYPE_INVALID = -1,
45 GC_TYPE_CODE = 0,
46 GC_TYPE_TITLE,
47 GC_TYPE_SECTION,
48 GC_TYPE_SUBSECTION,
49 GC_TYPE_SUBSUBSECTION,
50 GC_TYPE_HEADING5,
51 GC_TYPE_HEADING6,
52 GC_TYPE_TEXT,
53 GC_TYPE_IMAGE,
54 GC_TYPE_PAGEBREAK
55};
57std::ostream& operator<<(std::ostream& out, const GroupType grouptype);
58
87class GroupCell : public Cell
88{
89public:
92 GroupCell(Configuration *config, GroupType groupType,
93 const wxString &initString = {});
94 GroupCell(GroupCell const &cell);
95 GroupCell(GroupCell *group, const GroupCell &cell);
96 std::unique_ptr<Cell> Copy() const;
97 std::unique_ptr<Cell> Copy(GroupCell *group) const override;
98 const CellTypeInfo &GetInfo() override;
99 std::unique_ptr<GroupCell> CopyList() const;
100 virtual ~GroupCell();
101
102 wxCoord GetMaxDrop() const override;
103 wxCoord GetCenterList() const override;
104
105 // cppcheck-suppress duplInheritedMember
106 GroupCell *first() const { return dynamic_cast<GroupCell*>(Cell::first()); }
107 // cppcheck-suppress duplInheritedMember
108 GroupCell *last() const { return dynamic_cast<GroupCell*>(Cell::last()); }
109
110 const wxString &GetAnswer(size_t answer) const;
111 const wxString &GetAnswer(const wxString &question) const;
113 bool ContainsSavedAnswers() const { return !m_knownAnswers.empty(); }
115 bool AutoAnswer() const { return m_autoAnswer; }
116 void SetAutoAnswer(bool autoAnswer);
129 void SetAnswer(const wxString &question, const wxString &answer);
130
131 size_t GetInnerCellCount() const override { return (m_groupType == GC_TYPE_PAGEBREAK) ? 0 : 2; }
132 Cell *GetInnerCell(size_t index) const override {
133 switch (index) {
134 case 0:
135 return m_inputLabel.get();
136 case 1:
137 return m_output.get();
138 default:
139 return nullptr;
140 }
141 }
142
149
155 void CellUnderPointer(GroupCell *cell);
156
161 const wxString GetToolTip(wxPoint point) const override;
167 wxString GetLinkAt(wxPoint point) override;
168
169 // general methods
170 GroupType GetGroupType() const { return m_groupType; }
171
172 void SetGroupType(GroupType groupType);
173
174 // selection methods
175 Range GetInnerCellsInRect(const wxRect &rect) const override;
176
177 Range GetCellsInOutput() const;
178
179 Range GetCellsInOutputRect(const wxRect &rect, wxPoint one, wxPoint two) const;
180
181 // methods for manipulating GroupCell
182 // cppcheck-suppress functionConst
183 bool SetEditableContent(const wxString &text);
184
185 void AppendOutput(std::unique_ptr<Cell> &&cell);
186
193 void RemoveOutput();
194
195 AFontSize EditorFontSize() const;
196
199
209 wxString ToTeX(const wxString &imgDir, const wxString &filename, std::size_t *imgCounter) const;
210
211 wxString ToRTF() const override;
212
213 wxString ToTeXCodeCell(const wxString &imgDir, const wxString &filename, std::size_t *imgCounter) const;
214
215 static wxString ToTeXImage(const Cell *tmp, const wxString &imgDir, const wxString &filename, std::size_t *imgCounter);
216
223 static wxString ToTeXAnimation(const Cell *tmp, const wxString &imgDir, const wxString &filename, std::size_t *imgCounter);
224
225 wxString ToTeX() const override;
226
227 wxString ToXML() const override;
228
229 void Hide(bool hide) override;
230 virtual bool FirstLineOnlyEditor() const override;
231 void SwitchHide();
232
233 wxRect HideRect() const;
234
243 wxCoord BracketColumnLeft() const;
244
246 wxCoord ContentColumnRight() const;
247
250 wxCoord label = 0;
251 wxCoord rest = 0;
252 };
253
255 static bool IsOutputLabel(const Cell &cell);
256
262 static std::vector<OutputLineWidths> MeasureOutputLines(Cell *displayed);
263
271 wxPoint CalculateLabelPosition() const;
272
273 // raw manipulation of GC (should be protected)
274 void SetInput(std::unique_ptr<Cell> &&input);
275
276 void SetOutput(std::unique_ptr<Cell> &&output);
277
278 void AppendInput(std::unique_ptr<Cell> &&cell);
279
281 // cppcheck-suppress duplInheritedMember
282 GroupCell *GetPrevious() const { return dynamic_cast<GroupCell *>(Cell::GetPrevious()); }
283
285 // cppcheck-suppress duplInheritedMember
286 GroupCell *GetNext() const { return dynamic_cast<GroupCell *>(Cell::GetNext()); }
287
288 static wxString TexEscapeOutputCell(wxString Input);
289
290 Cell *GetPrompt() const { return m_inputLabel.get(); }
291
292 EditorCell *GetEditable() const
293 { return m_inputLabel ? dynamic_cast<EditorCell *>(m_inputLabel->GetNext()) : nullptr; }
294
299 Cell *GetLabel() const { return m_output.get(); }
300
306 { return m_output ? m_output->GetNext() : nullptr; }
307
314 {
315 Cell *first = nullptr;
316 Cell *last = nullptr;
317 };
323 std::vector<OutputResult> GetOutputResults() const;
324
326 wxRect GetOutputRect() const { return m_outputRect; }
327
336 bool ContainsPointOrOutput(wxPoint point) const
337 { return ContainsPoint(point) || m_outputRect.Contains(point); }
338
345 wxRect GetBracketRect() const;
346
353 void Recalculate(const AFontSize fontsize) const override {
354 if (fontsize.IsValid())
355 m_mathFontSize = fontsize;
356 else
357 m_mathFontSize = m_configuration->GetMathFontSize();
358 m_fontSize = m_mathFontSize;
359 Recalculate();
360 }
361 bool Recalculate() const;
362 bool Reposition() const;
364 bool NeedsRecalculation(AFontSize fontSize) const override;
366 void SetCurrentPoint(wxPoint point) const override;
367 wxPoint CalculateInputPosition() const;
368
370 void RecalculateInput() const;
371 wxRect GetRect(bool all = false) const override;
377 void RecalculateOutput() const;
378
386 Cell *DisplayedOutput() const;
387
389 void BreakLines() const;
390
396 void ResetInputLabel();
397
399 void ResetInputLabelList();
401
403 bool IsFoldable() const;
404
406 GroupCell *GetHiddenTree() const { return m_hiddenTree.get(); }
407
414 bool HideTree(std::unique_ptr<GroupCell> &&tree);
415
417 std::unique_ptr<GroupCell> UnhideTree();
418
425 bool RevealHidden();
426
428 void SetHiddenTreeParent(GroupCell *parent, GroupCell *last = nullptr);
429
435
440 GroupCell *Fold(); // returns pointer to this or nullptr if not successful
445 GroupCell *Unfold();
446
454 GroupCell *FoldAll(std::vector<GroupCell *> *affected = nullptr);
455
463 GroupCell *UnfoldAll(std::vector<GroupCell *> *affected = nullptr);
464
470 bool IsLesserGCType(GroupType comparedTo) const;
471
473 bool IsMainInput(const Cell *active) const;
474
475 bool IsHeading() const;
477 bool SectioningCanMoveIn() const {return IsHeading() && (GetGroupType() != GC_TYPE_HEADING6);};
479 bool SectioningCanMoveOut() const {return IsHeading() && (GetGroupType() != GC_TYPE_TITLE);}
482
484 void Number(int &section, int &subsection, int &subsubsection, int &heading5, int &heading6, int &image) const;
485
497 void Draw(wxDC *dc, wxDC *antialiassingDC) override;
506 bool DrawThisCell();
507
508 bool AddEnding() override;
509
511 void DrawBracket(wxDC *dc, wxDC *antialiassingDC);
512
514 bool Empty() const;
515
517 bool Contains(GroupCell *cell) const;
518
520 wxString ToString() const override;
521
523 void InEvaluationQueue(bool inQueue) { m_inEvaluationQueue = inQueue; }
524
526 void LastInEvaluationQueue(bool last) { m_lastInEvaluationQueue = last; }
527
529 void OnSize();
530
532 void InputHeightChanged();
533
535 void OutputHeightChanged();
536
537 using CmdsAndVariables = std::unordered_map<wxString, int, wxStringHash>;
538
540 std::vector<std::pair<wxString, wxString>> m_knownAnswers;
541
542#if wxUSE_ACCESSIBILITY
543 wxAccStatus GetName (int childId, wxString *name) const override;
544 wxAccStatus GetDescription(int childId, wxString *description) const override;
545 wxAccStatus GetLocation (wxRect &rect, int elementId) override;
546 wxAccStatus GetRole (int childId, wxAccRole *role) const override;
547#endif
548
550 void UpdateYPosition() const;
551
552 void UpdateOutputPositions() const;
553
554 void UpdateYPositionList() const;
555
556 bool GetSuppressTooltipMarker() const { return m_suppressTooltipMarker; }
557 void SetSuppressTooltipMarker(bool suppress) { m_suppressTooltipMarker = suppress; }
558
559protected:
560 wxCoord GetInputIndent() const;
561 void UpdateCellsInGroup();
562
563//** 16-byte objects (16 bytes)
564//**
571 mutable wxRect m_outputRect{-1, -1, 0, 0};
572
573//** 8/4 byte objects (40 bytes)
574//**
575 DocumentCellPointers *const m_documentCellPointers = GetDocumentCellPointers();
576 ViewCellPointers *const m_viewCellPointers = GetViewCellPointers();
577
578 std::unique_ptr<GroupCell> m_hiddenTree;
580
581 // The pointers below point to inner cells and must be kept contiguous.
582 // ** All pointers must be the same: either Cell * or std::unique_ptr<Cell>.
583 // ** NO OTHER TYPES are allowed.
585 std::unique_ptr<Cell> m_inputLabel;
587 std::unique_ptr<Cell> m_output;
588 // The pointers above point to inner cells and must be kept contiguous.
589
599 mutable std::unique_ptr<Cell> m_layoutSuppressedNotice;
600
601//** 4-byte objects (16 bytes)
602//**
605 mutable int m_labelWidth_cached = 0;
608 mutable int m_inputWidth, m_inputHeight;
609protected:
610//** 2-byte objects (6 bytes)
611//**
613 int16_t m_cellsInGroup = 1;
614 mutable int16_t m_numberedAnswersCount = 0;
615
616 mutable AFontSize m_mathFontSize;
617
618//** 1-byte objects (1 byte)
619//**
622
623//** Bitfield objects (1 bytes)
624//**
626 bool m_autoAnswer : 1 = false;
627 bool m_inEvaluationQueue : 1 = false;
628 bool m_lastInEvaluationQueue : 1 = false;
629 bool m_updateConfusableCharWarnings : 1 = true;
631 bool m_suppressTooltipMarker : 1 = false;
634 mutable bool m_cellsAppended : 1 = false;
641 mutable bool m_layoutSuppressed : 1 = false;
642
643 static wxString m_lookalikeChars;
644};
645
646#endif /* GROUPCELL_H */
The definition of the base class of all cells the worksheet consists of.
This file contains the definition of the class EditorCell.
std::ostream & operator<<(std::ostream &out, const GroupType grouptype)
Allow Standard c++ streams to print out our enum values as text.
Definition: GroupCell.cpp:2405
GroupType
All types a GroupCell can be of.
Definition: GroupCell.h:43
int group
Neighbouring sections of the same group aren't separated.
Definition: ToolBarSections.cpp:45
A Type-Safe Fixed-Point Font Size.
Definition: FontAttribs.h:99
A class that carries information about the type of a cell.
Definition: Cell.h:93
The base class all cell types the worksheet can consist of are derived from.
Definition: Cell.h:148
Cell * GetNext() const
Get the next cell in the list.
Definition: Cell.h:864
bool ContainsPoint(wxPoint point) const
Is a given point inside this cell?
Definition: Cell.h:392
Cell * GetPrevious() const
Returns a pointer to the previous cell in the current cell list.
Definition: Cell.h:861
Cell * last() const
Get the last cell in this list of cells.
Definition: Cell.cpp:1482
AFontSize m_fontSize
The unscaled font size.
Definition: Cell.h:1244
Configuration * m_configuration
A pointer to the configuration responsible for this worksheet.
Definition: Cell.h:1199
DocumentCellPointers * GetDocumentCellPointers() const
The document-model half of the cell-pointer registry this cell uses.
Definition: Cell.cpp:69
virtual void SetCurrentPoint(wxPoint point) const
Pass 2: Arrangement.
Definition: Cell.cpp:526
ViewCellPointers * GetViewCellPointers() const
The transient view-state half of the cell-pointer registry this cell uses.
Definition: Cell.cpp:73
bool NeedsRecalculation() const
True, if something that affects the cell size has changed.
Definition: Cell.h:610
Cell * first() const
Get the first cell in this list of cells.
Definition: Cell.cpp:1473
The configuration storage for the current worksheet.
Definition: Configuration.h:101
The document-model half of the cell-pointer registry.
Definition: CellPointers.h:53
This class defines what the user sees as input cell.
Definition: EditorCell.h:67
A cell grouping input (and, if there is one, also the output) cell to a foldable item.
Definition: GroupCell.h:88
wxCoord GetMaxDrop() const override
Returns the maximum distance between center and bottom of this line.
Definition: GroupCell.cpp:1000
bool ContainsSavedAnswers() const
Does this GroupCell know the answer to any of maxima's questions?
Definition: GroupCell.h:113
void Draw(wxDC *dc, wxDC *antialiassingDC) override
Draw this GroupCell.
Definition: GroupCell.cpp:921
bool Contains(GroupCell *cell) const
Does this tree contain the cell "cell"?
Definition: GroupCell.cpp:2205
void Hide(bool hide) override
Hide this cell. See IsHidden() for details.
Definition: GroupCell.cpp:1913
GroupCell * m_hiddenTreeParent
store linkage to the parent of the fold
Definition: GroupCell.h:579
std::vector< std::pair< wxString, wxString > > m_knownAnswers
A list of answers provided by the user.
Definition: GroupCell.h:540
bool IsFoldable() const
folding and unfolding
Definition: GroupCell.cpp:204
void BreakLines() const
Break this cell into lines.
Definition: GroupCell.cpp:1877
Cell * DisplayedOutput() const
The cell list to lay out and draw as this group's output.
Definition: GroupCell.cpp:663
virtual bool FirstLineOnlyEditor() const override
True, if this GroupCell is folded and its editor shows only its first line.
Definition: GroupCell.cpp:1907
bool RevealHidden()
Unfold all that is needed to make the current cell seen.
Definition: GroupCell.cpp:1977
std::vector< OutputResult > GetOutputResults() const
The results the output consists of, top to bottom.
Definition: GroupCell.cpp:641
void CellUnderPointer(GroupCell *cell)
Marks the cell that is under the mouse pointer.
Definition: GroupCell.cpp:996
void Number(int &section, int &subsection, int &subsubsection, int &heading5, int &heading6, int &image) const
Return this cell's section- or image number.
Definition: GroupCell.cpp:2125
GroupType m_groupType
Which type this cell is of?
Definition: GroupCell.h:621
wxPoint CalculateLabelPosition() const
Where this group cell's label (the "(%i1)", or a section's number) goes.
Definition: GroupCell.cpp:735
void OutputHeightChanged()
Reset the data when the output size changes.
Definition: GroupCell.cpp:467
wxCoord BracketColumnLeft() const
The left edge of the gutter column the cell bracket is drawn in.
Definition: GroupCell.cpp:729
wxString GetLinkAt(wxPoint point) override
The link at point, if any: in the text cell's text or in the output.
Definition: GroupCell.cpp:1850
bool NeedsRecalculation(AFontSize fontSize) const override
True, if something that affects the cell size has changed.
Definition: GroupCell.cpp:682
wxRect GetBracketRect() const
The on-screen rectangle occupied by this cell's bracket.
Definition: GroupCell.cpp:1008
wxRect m_outputRect
Bounding rectangle of this group's output (results) area, in worksheet coordinates.
Definition: GroupCell.h:571
GroupCell * GetHiddenTree() const
Get the tree of cells that got hidden by folding this cell.
Definition: GroupCell.h:406
std::unique_ptr< GroupCell > UnhideTree()
Unfold the current cell.
Definition: GroupCell.cpp:1963
static bool IsOutputLabel(const Cell &cell)
Is this output cell one of the labels that start a line, like "(%o1)"?
Definition: GroupCell.cpp:782
wxString ToTeX() const override
Convert this cell to its LaTeX representation.
Definition: GroupCell.cpp:1219
bool m_autoAnswer
Does this GroupCell automatically fill in the answer to questions?
Definition: GroupCell.h:626
size_t GetInnerCellCount() const override
The number of inner cells - for use by the iterators.
Definition: GroupCell.h:131
wxString ToRTF() const override
Returns the cell's representation as RTF.
Definition: GroupCell.cpp:1223
void DrawBracket(wxDC *dc, wxDC *antialiassingDC)
Draw the bracket of this cell.
Definition: GroupCell.cpp:1016
void RemoveOutput()
Remove all output cells attached to this one.
Definition: GroupCell.cpp:305
Cell * GetLabel() const
Returns the list of cells the output consists of, starting with the label.
Definition: GroupCell.h:299
void MarkNeedsRecalculate()
Mark this group as needing a recalculation.
Definition: GroupCell.cpp:241
const wxString GetToolTip(wxPoint point) const override
Returns the tooltip for the element at the position point.
Definition: GroupCell.cpp:1810
Range GetInnerCellsInRect(const wxRect &rect) const override
Select the cells inside this cell described by the rectangle rect.
Definition: GroupCell.cpp:1752
std::unique_ptr< Cell > m_inputLabel
The input label of this cell. Is followed by the input of the cell.
Definition: GroupCell.h:585
std::unique_ptr< Cell > Copy(GroupCell *group) const override
Create a copy of this cell.
int m_inputWidth
Width and height of this group's input area (input label plus editor), computed by RecalculateInput()...
Definition: GroupCell.h:608
wxRect GetRect(bool all=false) const override
Get the smallest rectangle this cell fits in.
Definition: GroupCell.cpp:984
GroupCell * SectioningUnitGetEndOf() const
Get the end of this section/subsection/...
void UpdateConfusableCharWarnings()
GroupCells warn if they contain both greek and latin lookalike chars.
Definition: GroupCell.cpp:364
const CellTypeInfo & GetInfo() override
Returns the information about this cell's type.
void RecalculateInput() const
Recalculate the height of the input part of the cell.
Definition: GroupCell.cpp:494
void SetHiddenTreeParent(GroupCell *parent, GroupCell *last=nullptr)
Set the parent cell of hidden cells.
Definition: GroupCell.cpp:1990
void InputHeightChanged()
Reset the data when the input size changes.
Definition: GroupCell.cpp:446
bool m_cellsAppended
Output cells were appended since the last layout, so a recalculation is needed (see NeedsRecalculatio...
Definition: GroupCell.h:634
void ResetInputLabel()
Reset the input label of the current cell.
Definition: GroupCell.cpp:188
static std::vector< OutputLineWidths > MeasureOutputLines(Cell *displayed)
The width of every line of output, so a line can be placed before it is walked.
Definition: GroupCell.cpp:788
wxCoord ContentColumnRight() const
The x just past the right edge of the content column. See the definition.
Definition: GroupCell.cpp:724
void Recalculate(const AFontSize fontsize) const override
Recalculates the size of this GroupCell and all cells inside it if needed.
Definition: GroupCell.h:353
bool Empty() const
Is this list of cells empty?
Definition: GroupCell.cpp:180
bool DrawThisCell()
Does a repaint need this cell drawn?
Definition: GroupCell.cpp:909
wxRect GetOutputRect() const
Determine which rectangle is occupied by this GroupCell.
Definition: GroupCell.h:326
bool SectioningCanMoveIn() const
Can this chapter/section/... converted to a 'smaller' cell, e.g. section->subsection,...
Definition: GroupCell.h:477
wxCoord GetCenterList() const override
Returns the maximum distance between top and center of this line.
Definition: GroupCell.cpp:1004
void OnSize()
Called on MathCtrl resize.
Definition: GroupCell.cpp:482
static wxString ToTeXAnimation(const Cell *tmp, const wxString &imgDir, const wxString &filename, std::size_t *imgCounter)
Write an animation's frames as images and emit an \animategraphics for it.
Definition: GroupCell.cpp:1586
GroupCell * Fold()
Fold this cell.
Definition: GroupCell.cpp:1998
void SetAnswer(const wxString &question, const wxString &answer)
Add a new answer to the cell.
Definition: GroupCell.cpp:248
void InEvaluationQueue(bool inQueue)
Is this cell part of the evaluation Queue?
Definition: GroupCell.h:523
int16_t m_cellsInGroup
The number of cells the current group contains (-1, if no GroupCell)
Definition: GroupCell.h:613
GroupCell * UnfoldAll(std::vector< GroupCell * > *affected=nullptr)
Unfold all cells.
Definition: GroupCell.cpp:2063
bool SectioningCanMoveOut() const
Can this chapter/section/... converted to a 'larger' cell, e.g. subsection->section,...
Definition: GroupCell.h:479
void UpdateYPosition() const
Recalculate the cell's y position using the position and height of the last one.
GroupCell * GetHiddenTreeParent() const
The cell this cell is hidden inside, if it is part of a folded subtree.
Definition: GroupCell.h:434
Cell * GetOutput() const
Returns the list of cells the output consists of, starting after the label.
Definition: GroupCell.h:305
bool HideTree(std::unique_ptr< GroupCell > &&tree)
Fold the current cell.
Definition: GroupCell.cpp:1943
int m_labelWidth_cached
Cache of the last width computed by GetInputIndent(); reused as the input indent while the input labe...
Definition: GroupCell.h:605
std::unique_ptr< GroupCell > m_hiddenTree
here hidden (folded) tree of GCs is stored
Definition: GroupCell.h:578
void LastInEvaluationQueue(bool last)
Is this cell the last cell in the evaluation Queue?
Definition: GroupCell.h:526
wxString ToString() const override
A textual representation of this cell.
Definition: GroupCell.cpp:1191
void SetCurrentPoint(wxPoint point) const override
Pass 2 (Arrange): Sets the GroupCell position and triggers child layout.
Definition: GroupCell.cpp:893
bool AutoAnswer() const
Does this GroupCell save the answer to a question?
Definition: GroupCell.h:115
GroupCell * GetLastWorkingGroup() const
Which GroupCell was the last maxima was working on?
Definition: GroupCell.cpp:260
GroupCell * GetPrevious() const
Get the previous GroupCell in the list.
Definition: GroupCell.h:282
std::unique_ptr< Cell > m_layoutSuppressedNotice
Cached placeholder shown instead of the output while layout is suppressed.
Definition: GroupCell.h:599
bool AddEnding() override
Add a semicolon to a code cell, if needed.
Definition: GroupCell.cpp:980
GroupCell * GetNext() const
Get the next GroupCell in the list.
Definition: GroupCell.h:286
bool m_layoutSuppressed
Laying out this group's output exceeded the configured deadline.
Definition: GroupCell.h:641
Cell * GetInnerCell(size_t index) const override
Retrieve an inner cell with given index which must be less than GetInnerCellCount.
Definition: GroupCell.h:132
wxString ToXML() const override
Convert this cell to a representation fit for saving in a .wxmx file.
Definition: GroupCell.cpp:1627
void RecalculateOutput() const
Recalculate the height of the output part of the cell.
Definition: GroupCell.cpp:572
void ResetInputLabelList()
Call ResetInputLabel() on all cells in the list of cells this GroupCell starts with.
Definition: GroupCell.cpp:195
GroupCell * Unfold()
Unfold this cell.
Definition: GroupCell.cpp:2035
GroupCell * FoldAll(std::vector< GroupCell * > *affected=nullptr)
Fold all cells.
Definition: GroupCell.cpp:2046
std::unique_ptr< Cell > m_output
The maxima output this cell contains.
Definition: GroupCell.h:587
bool IsLesserGCType(GroupType comparedTo) const
Document structure: Can this cell type be part of the contents of comparedTo?
Definition: GroupCell.cpp:2078
bool ContainsPointOrOutput(wxPoint point) const
Is this point inside the cell or its output?
Definition: GroupCell.h:336
bool m_suppressTooltipMarker
Suppress the yellow ToolTip marker?
Definition: GroupCell.h:631
The view/interaction half of the cell-pointer registry.
Definition: CellPointers.h:282
The widths of one line of output, split at the label that starts it.
Definition: GroupCell.h:249
One result of this cell's output, as the keyboard steps through it (GH #2382)
Definition: GroupCell.h:314