47 std::unique_ptr<Cell> &&under, std::unique_ptr<Cell> &&over,
48 std::unique_ptr<Cell> &&base);
61 return m_comma1.get();
65 return m_comma2.get();
69 return m_comma3.get();
85 void Draw(wxDC *dc, wxDC *antialiassingDC)
override;
89 wxString
ToOMML()
const override;
91 wxString
ToTeX()
const override;
92 wxString
ToXML()
const override;
104 m_baseNeedsParen = needsParen;
105 m_displayParen = needsParen;
122 return m_over->ToString().IsEmpty() ? 7 : 9;
125 const bool hasOver = !m_over->ToString().IsEmpty();
132 return m_comma1.get();
136 return m_comma2.get();
138 return m_start.get();
140 return hasOver ? m_comma3.get() : m_close.get();
142 return hasOver ? m_over.get() :
nullptr;
144 return hasOver ? m_close.get() :
nullptr;
150 void Unbreak() const override final;
180 Cell *Over()
const {
return m_over.get();}
181 Cell *Under()
const {
return m_under.get();}
184 std::unique_ptr<Cell> MakeStart(
Cell *under)
const;
185 void MakeBreakUpCells();
186 const static wxString m_svgSumSign;
190 Cell *DisplayedBase()
const;
193 wxString m_altCopyText;
197 std::unique_ptr<Cell> m_open;
198 std::unique_ptr<Cell> m_paren;
199 std::unique_ptr<Cell> m_comma1;
200 std::unique_ptr<Cell> m_var;
201 std::unique_ptr<Cell> m_comma2;
202 std::unique_ptr<Cell> m_start;
203 std::unique_ptr<Cell> m_comma3;
204 std::unique_ptr<Cell> m_close;
205 std::unique_ptr<Cell> m_over;
206 std::unique_ptr<Cell> m_under;
209 mutable wxSize m_signSize;
221 mutable bool m_displayParen : 1 =
true;
226 bool m_baseNeedsParen : 1 =
true;
The definition of the base class of all cells the worksheet consists of.
This file declares the class ParenCell.
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
virtual void SetCurrentPoint(wxPoint point) const
Pass 2: Arrangement.
Definition: Cell.cpp:514
The configuration storage for the current worksheet.
Definition: Configuration.h:98
A cell grouping input (and, if there is one, also the output) cell to a foldable item.
Definition: GroupCell.h:88
The class that represents parenthesis that are wrapped around text.
Definition: ParenCell.h:46
size_t GetInnerCellCount() const override
The number of inner cells - for use by the iterators.
Definition: SumCell.h:53
wxString ToMathML() const override
Convert this cell to a representation fit for saving in a .wxmx file.
Definition: SumCell.cpp:336
wxString ToMatlab() const override
Convert this cell to its Matlab representation.
Definition: SumCell.cpp:270
virtual const wxString GetMaximaCommandName() const
What maxima command name corresponds to this cell?
Definition: SumCell.cpp:122
bool BreakUp() const override
Try to split this command into lines to make it fit on the screen.
Definition: SumCell.cpp:367
const CellTypeInfo & GetInfo() override
Returns the information about this cell's type.
virtual const wxString GetXMLType() const
Returns the type our cell has when saving it to .wxmx.
Definition: SumCell.cpp:151
std::unique_ptr< Cell > Copy(GroupCell *group) const override
Create a copy of this cell.
size_t GetBrokenCellCount() const override
ORDER MATTERS, and this is NOT the same set as GetInnerCellCount()/ GetInnerCell() above: index 1 the...
Definition: SumCell.h:121
virtual const wxString GetMatlabCommandName() const
What matlab command name corresponds to this cell?
Definition: SumCell.cpp:136
void NeedsParen(bool needsParen)
Whether the summand genuinely needs the disambiguating parentheses around it (GH #1536),...
Definition: SumCell.h:103
wxString ToString() const override
Returns the cell's representation as a string.
Definition: SumCell.cpp:244
virtual const wxSize GetSymbolSize() const
How big do we want our svg symbol to be?
Definition: SumCell.cpp:112
const wxString & GetAltCopyText() const override
Get the text set using SetAltCopyText - may be empty.
Definition: SumCell.h:107
virtual const wxString GetLaTeXCommandName() const
What LaTeX command name corresponds to this cell?
Definition: SumCell.cpp:141
wxString ToTeX() const override
Convert this cell to its LaTeX representation.
Definition: SumCell.cpp:292
void Recalculate(const AFontSize fontsize) const override
Recalculate the size of the cell and the difference between top and center.
Definition: SumCell.cpp:159
void RefreshBreakUpCommandName() const
Re-applies GetMaximaCommandName() to the already-created m_open cell.
Definition: SumCell.cpp:77
Cell * GetBrokenCell(size_t index) const override
Retrieve a piece of this cell's broken (linear/1D) display; see GetBrokenCellCount().
Definition: SumCell.h:124
void SetAltCopyText(const wxString &text) override
What should end up if placing this cell on the clipboard?
Definition: SumCell.h:94
wxString ToXML() const override
Convert this cell to a representation fit for saving in a .wxmx file.
Definition: SumCell.cpp:325
void SetCurrentPoint(wxPoint point) const override
Pass 2: Arrangement.
Definition: SumCell.cpp:200
void Unbreak() const override final
Undo breaking this cell into multiple lines.
Definition: SumCell.cpp:362
void Draw(wxDC *dc, wxDC *antialiassingDC) override
Pass 3 (Paint): Renders the cell using pre-calculated coordinates.
Definition: SumCell.cpp:222
Cell * GetInnerCell(size_t index) const override
Retrieve an inner cell with given index which must be less than GetInnerCellCount.
Definition: SumCell.h:54
virtual const wxString GetUnicodeSymbol() const
What unicode symbol name corresponds to this cell?
Definition: SumCell.cpp:146
virtual const wxString GetSvgSymbolData() const
Returns the data that creates our SVG symbol.
Definition: SumCell.cpp:130
Cell * Base() const
The base cell owned by the paren (it's without the paren)
Definition: SumCell.cpp:85
wxString ToOMML() const override
Returns the cell's representation as OMML.
Definition: SumCell.cpp:305
A Text cell.
Definition: TextCell.h:38