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;
169 Cell *Over()
const {
return m_over.get();}
170 Cell *Under()
const {
return m_under.get();}
173 std::unique_ptr<Cell> MakeStart(
Cell *under)
const;
174 void MakeBreakUpCells();
175 const static wxString m_svgSumSign;
179 Cell *DisplayedBase()
const;
182 wxString m_altCopyText;
186 std::unique_ptr<Cell> m_open;
187 std::unique_ptr<Cell> m_paren;
188 std::unique_ptr<Cell> m_comma1;
189 std::unique_ptr<Cell> m_var;
190 std::unique_ptr<Cell> m_comma2;
191 std::unique_ptr<Cell> m_start;
192 std::unique_ptr<Cell> m_comma3;
193 std::unique_ptr<Cell> m_close;
194 std::unique_ptr<Cell> m_over;
195 std::unique_ptr<Cell> m_under;
198 mutable wxSize m_signSize;
210 mutable bool m_displayParen : 1 =
true;
215 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:331
wxString ToMatlab() const override
Convert this cell to its Matlab representation.
Definition: SumCell.cpp:265
virtual const wxString GetMaximaCommandName() const
What maxima command name corresponds to this cell?
Definition: SumCell.cpp:117
bool BreakUp() const override
Try to split this command into lines to make it fit on the screen.
Definition: SumCell.cpp:362
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:146
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:131
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:239
virtual const wxSize GetSymbolSize() const
How big do we want our svg symbol to be?
Definition: SumCell.cpp:107
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:136
wxString ToTeX() const override
Convert this cell to its LaTeX representation.
Definition: SumCell.cpp:287
void Recalculate(const AFontSize fontsize) const override
Recalculate the size of the cell and the difference between top and center.
Definition: SumCell.cpp:154
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:320
void SetCurrentPoint(wxPoint point) const override
Pass 2: Arrangement.
Definition: SumCell.cpp:195
void Unbreak() const override final
Undo breaking this cell into multiple lines.
Definition: SumCell.cpp:357
void Draw(wxDC *dc, wxDC *antialiassingDC) override
Pass 3 (Paint): Renders the cell using pre-calculated coordinates.
Definition: SumCell.cpp:217
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:141
virtual const wxString GetSvgSymbolData() const
Returns the data that creates our SVG symbol.
Definition: SumCell.cpp:125
Cell * Base() const
The base cell owned by the paren (it's without the paren)
Definition: SumCell.cpp:80
wxString ToOMML() const override
Returns the cell's representation as OMML.
Definition: SumCell.cpp:300
A Text cell.
Definition: TextCell.h:38