|
wxMaxima
|
A specialized GroupCell that provides empty vertical space for alignment. More...
Public Types | |
| typedef std::unordered_map< wxString, int, wxStringHash > | CmdsAndVariables |
Public Member Functions | |
| SpacerGroupCell (Configuration *config, wxCoord height) | |
| void | Recalculate (AFontSize fontsize) const override |
| Forces the cell to a specific height determined by its matching counterpart in another worksheet. | |
| std::unique_ptr< Cell > | Copy (GroupCell *parent) const override |
| Create a copy of this cell. | |
| std::unique_ptr< Cell > | Copy () const |
| const CellTypeInfo & | GetInfo () override |
| Returns the information about this cell's type. | |
| std::unique_ptr< GroupCell > | CopyList () const |
| std::unique_ptr< Cell > | CopyList (GroupCell *group) const |
| Return a copy of the list of cells beginning with this one. | |
| wxCoord | GetMaxDrop () const override |
| Returns the maximum distance between center and bottom of this line. | |
| wxCoord | GetCenterList () const override |
| Returns the maximum distance between top and center of this line. | |
| GroupCell * | first () const |
| GroupCell * | last () const |
| const wxString & | GetAnswer (size_t answer) const |
| const wxString & | GetAnswer (const wxString &question) const |
| bool | ContainsSavedAnswers () const |
| Does this GroupCell know the answer to any of maxima's questions? | |
| bool | AutoAnswer () const |
| Does this GroupCell save the answer to a question? | |
| void | SetAutoAnswer (bool autoAnswer) |
| void | MarkNeedsRecalculate () |
| Mark this group as needing a recalculation. | |
| void | SetAnswer (const wxString &question, const wxString &answer) |
| Add a new answer to the cell. | |
| size_t | GetInnerCellCount () const override |
| The number of inner cells - for use by the iterators. | |
| Cell * | GetInnerCell (size_t index) const override |
| Retrieve an inner cell with given index which must be less than GetInnerCellCount. | |
| GroupCell * | GetLastWorkingGroup () const |
| Which GroupCell was the last maxima was working on? | |
| void | CellUnderPointer (GroupCell *cell) |
| Marks the cell that is under the mouse pointer. | |
| const wxString | GetToolTip (wxPoint point) const override |
| Returns the tooltip for the element at the position point. | |
| GroupType | GetGroupType () const |
| void | SetGroupType (GroupType groupType) |
| Range | GetInnerCellsInRect (const wxRect &rect) const override |
| Select the cells inside this cell described by the rectangle rect. | |
| Range | GetCellsInOutput () const |
| Range | GetCellsInOutputRect (const wxRect &rect, wxPoint one, wxPoint two) const |
| bool | SetEditableContent (const wxString &text) |
| void | AppendOutput (std::unique_ptr< Cell > &&cell) |
| void | RemoveOutput () |
| Remove all output cells attached to this one. | |
| AFontSize | EditorFontSize () const |
| void | UpdateConfusableCharWarnings () |
| GroupCells warn if they contain both greek and latin lookalike chars. | |
| wxString | ToTeX (const wxString &imgDir, const wxString &filename, std::size_t *imgCounter) const |
| Convert the cell to TeX code. | |
| wxString | ToTeX () const override |
| Convert this cell to its LaTeX representation. | |
| wxString | ToRTF () const override |
| Returns the cell's representation as RTF. | |
| wxString | ToTeXCodeCell (const wxString &imgDir, const wxString &filename, std::size_t *imgCounter) const |
| wxString | ToXML () const override |
| Convert this cell to a representation fit for saving in a .wxmx file. | |
| void | Hide (bool hide) override |
| Hide this cell. See IsHidden() for details. | |
| virtual bool | FirstLineOnlyEditor () const override |
| True, if this GroupCell is folded and its editor shows only its first line. | |
| void | SwitchHide () |
| wxRect | HideRect () const |
| wxCoord | BracketColumnLeft () const |
| The left edge of the gutter column the cell bracket is drawn in. | |
| wxCoord | ContentColumnRight () const |
| The x just past the right edge of the content column. See the definition. | |
| wxPoint | CalculateLabelPosition () const |
| Where this group cell's label (the "(%i1)", or a section's number) goes. | |
| void | SetInput (std::unique_ptr< Cell > &&input) |
| void | SetOutput (std::unique_ptr< Cell > &&output) |
| void | AppendInput (std::unique_ptr< Cell > &&cell) |
| GroupCell * | GetPrevious () const |
| Get the previous GroupCell in the list. | |
| GroupCell * | GetNext () const |
| Get the next GroupCell in the list. | |
| Cell * | GetPrompt () const |
| EditorCell * | GetEditable () const |
| Cell * | GetLabel () const |
| Returns the list of cells the output consists of, starting with the label. | |
| Cell * | GetOutput () const |
| Returns the list of cells the output consists of, starting after the label. | |
| wxRect | GetOutputRect () const |
| Determine which rectangle is occupied by this GroupCell. | |
| wxRect | GetBracketRect () const |
| The on-screen rectangle occupied by this cell's bracket. | |
| bool | Recalculate () const |
| bool | Reposition () const |
| bool | NeedsRecalculation (AFontSize fontSize) const override |
| True, if something that affects the cell size has changed. | |
| virtual bool | NeedsRecalculation (AFontSize fontSize) const |
| True, if something that affects the cell size has changed. | |
| bool | NeedsRecalculation () const |
| True, if something that affects the cell size has changed. | |
| void | SetCurrentPoint (wxPoint point) const override |
| Pass 2 (Arrange): Sets the GroupCell position and triggers child layout. | |
| virtual void | SetCurrentPoint (wxPoint point) const |
| Pass 2: Arrangement. | |
| void | SetCurrentPoint (int x, int y) const |
| Sets the position for the cell and convenience overload. | |
| wxPoint | CalculateInputPosition () const |
| void | RecalculateInput () const |
| Recalculate the height of the input part of the cell. | |
| wxRect | GetRect (bool all=false) const override |
| Get the smallest rectangle this cell fits in. | |
| void | RecalculateOutput () const |
| Recalculate the height of the output part of the cell. | |
| Cell * | DisplayedOutput () const |
| The cell list to lay out and draw as this group's output. | |
| void | BreakLines () const |
| Break this cell into lines. | |
| void | ResetInputLabel () |
| Reset the input label of the current cell. | |
| void | ResetInputLabelList () |
| Call ResetInputLabel() on all cells in the list of cells this GroupCell starts with. | |
| bool | IsMainInput (const Cell *active) const |
| bool | IsHeading () const |
| bool | SectioningCanMoveIn () const |
| Can this chapter/section/... converted to a 'smaller' cell, e.g. section->subsection, paragraph->subparagraph, ...? | |
| bool | SectioningCanMoveOut () const |
| Can this chapter/section/... converted to a 'larger' cell, e.g. subsection->section, subparagraph->paragraph, ...? | |
| GroupCell * | SectioningUnitGetEndOf () const |
| Get the end of this section/subsection/... | |
| void | Number (int §ion, int &subsection, int &subsubsection, int &heading5, int &heading6, int &image) const |
| Return this cell's section- or image number. | |
| void | Draw (wxDC *dc, wxDC *antialiassingDC) override |
| Draw this GroupCell. | |
| bool | AddEnding () override |
| Add a semicolon to a code cell, if needed. | |
| void | DrawBracket (wxDC *dc, wxDC *antialiassingDC) |
| Draw the bracket of this cell. | |
| bool | Empty () const |
| Is this list of cells empty? | |
| bool | Contains (GroupCell *cell) const |
| Does this tree contain the cell "cell"? | |
| wxString | ToString () const override |
| A textual representation of this cell. | |
| void | InEvaluationQueue (bool inQueue) |
| Is this cell part of the evaluation Queue? | |
| void | LastInEvaluationQueue (bool last) |
| Is this cell the last cell in the evaluation Queue? | |
| void | OnSize () |
| Called on MathCtrl resize. | |
| void | InputHeightChanged () |
| Reset the data when the input size changes. | |
| void | OutputHeightChanged () |
| Reset the data when the output size changes. | |
| void | UpdateYPosition () const |
| Recalculate the cell's y position using the position and height of the last one. | |
| void | UpdateOutputPositions () const |
| void | UpdateYPositionList () const |
| bool | GetSuppressTooltipMarker () const |
| void | SetSuppressTooltipMarker (bool suppress) |
| wxCoord | Scale_Px (double px) const |
| Scale font sizes and line widths according to the zoom factor. | |
| AFontSize | Scale_Px (AFontSize size) const |
| Scale font sizes and line widths according to the zoom factor. | |
| unsigned long | CellsInListRecursive () const |
| How many cells does this cell contain? | |
| wxRect | CropToUpdateRegion (wxRect rect) const |
| The part of the rectangle rect that is in the region that is currently drawn. | |
| bool | InUpdateRegion () const |
| Is this cell inside the region that is currently drawn? | |
| void | SoftLineBreak (bool breakLine=true) const |
| Do we want this cell to start with a linebreak? | |
| bool | BreakUpCells () const |
| Cell list: Convert 2d math objects bigger than the screen width into linear form. | |
| void | CollectWideCells (std::vector< const Cell * > &wideCells, int clientWidth) const |
| Recursively collect all cells that are too wide to fit the line. | |
| bool | UnBreakUpCells () const |
| Convert all maths objects in this call list into their 2D form. | |
| void | BreakLines_List () const |
| Break lines in this list of cells. | |
| int | GetLineIndent () const |
| If this were the beginning of a line: How far do we need to indent it? | |
| bool | BreakLineHere () const |
| Are we allowed to break a line here? | |
| bool | HasHardLineBreak () const |
| Does this cell begin with a manual linebreak? | |
| virtual bool | BreakUp () const |
| Try to split this command into lines to make it fit on the screen. | |
| bool | ContainsRect (const wxRect &sm, bool all=true) const |
| Is a part of this cell inside a certain rectangle? | |
| bool | ContainsPoint (wxPoint point) const |
| Is a given point inside this cell? | |
| virtual void | ClearCache () |
| Clears memory from cached items automatically regenerated when the cell is drawn. | |
| void | ClearCacheList () |
| Clears the cache of the whole list of cells starting with this one. | |
| void | SetConfigurationList (Configuration *config) |
| Tell this cell list to use the configuration object config. | |
| virtual void | SetConfiguration (Configuration *config) |
| Tell this cell to use the configuration object config. | |
| Configuration * | GetConfiguration () |
| Which configuration object is responsible for this cell? | |
| void | DrawList (wxDC *dc, wxDC *adc) |
| Helper to draw a list of cells. | |
| virtual void | DrawBoundingBox (wxDC &WXUNUSED(dc), bool all=false) |
| Draw a rectangle that marks this cell or this list of cells as selected. | |
| bool | DrawThisCell () |
| Is this cell currently visible in the window? | |
| void | ForceBreakLine (bool force=true) const |
| Insert (or remove) a forced linebreak at the beginning of this cell. | |
| wxString | GetUUID () const |
| Returns the UUID of this cell. | |
| void | SetUUID (const wxString &uuid) |
| Sets the UUID of this cell. | |
| void | GenerateUUID () |
| Generates a new UUID for this cell. | |
| wxString | GetExtraXMLAttributes () const |
| Returns a string containing all extra XML attributes. | |
| void | AddExtraAttribute (const wxString &name, const wxString &value) |
| Adds an extra XML attribute to this cell. | |
| wxCoord | GetHeight () const |
| Get the height of this cell. | |
| int | GetWidth () const |
| Get the width of this cell. | |
| wxCoord | GetCenter () const |
| Get the distance between the top and the center of this cell. | |
| bool | HasValidSize () const |
| Is the size valid and not pending a recalculation? | |
| bool | HasStaleSize () const |
| Is the size valid, whether a recalculation is pending or not? | |
| bool | HasValidPosition () const |
| Is the position valid? | |
| wxCoord | GetDrop () const |
| Get the distance between the center and the bottom of this cell. | |
| CellType | GetType () const |
| Returns the type of this cell. | |
| virtual wxCoord | GetHeightList () const |
| Returns the total height of this line. | |
| wxCoord | SumOfWidths () const |
| How many pixels is this list of cells wide, if we don't break it into lines? | |
| wxCoord | GetLineWidth () const |
| How many pixels is the current line of this list of cells wide? | |
| wxCoord | GetCurrentX () const |
| Get the x position of the top left of this cell. | |
| wxCoord | GetCurrentY () const |
| Get the y position of the top left of this cell. | |
| void | ScheduleRecalculation () const |
| Cause this cell to be recalculated the next time. | |
| bool | ConfigChanged () const |
| Has the configuration changed since the last recalculation of this cell? | |
| virtual wxString | GetDiffPart () const |
| Get the part for diff tag support. | |
| bool | RecalculateList (AFontSize fontsize) const |
| Recalculate both width and height of this list of cells. | |
| bool | RecalculateTracked (AFontSize fontsize) const |
| Recalculate this cell at the font size its owner dictates. | |
| bool | FontSizeMatchesExpectation () const |
| Does this cell's font size match what its owner last dictated? | |
| void | FontsChangedList () |
| Tell a whole list of cells that their fonts have changed. | |
| void | ResetSize_Recursively () const |
| Mark all cached size information as "to be calculated". | |
| void | ResetSize_RecursivelyList () const |
| Mark all cached size information of this cell list as "to be calculated". | |
| void | ResetSize () const |
| Mark the cached height and width information as "to be calculated". | |
| void | ResetSizeList () const |
| Mark the cached height information of the whole list of cells as "to be calculated". | |
| void | SetBigSkip (bool skip) |
| Tell this cell to cause an additional vertical space. | |
| bool | HasBigSkip () const |
| Does this cell come with an additional vertical space. | |
| virtual void | SetType (CellType type) |
| Sets the text style according to the type. | |
| const TextStyle & | GetTextStyle () const |
| Get the text style. | |
| void | SetPen (wxDC *dc, double lineWidth=1.0) const |
| Sets the drawing pen to the cell's default foreground color. | |
| void | SetBrush (wxDC *dc) const |
| Sets the fill brush to the cell's default foreground color. | |
| wxColour | GetForegroundColor () const |
| void | SetHighlight (bool highlight) |
| Mark this cell as highlighted (e.G. being in a maxima box) | |
| bool | GetHighlight () const |
| Is this cell highlighted (e.G. inside a maxima box) | |
| virtual void | SetIsExponent () |
| Tell this cell to be an exponent. | |
| virtual void | SetIsExponentList () |
| Tell this list of cells to be an exponent. | |
| virtual void | SetValue (const wxString &WXUNUSED(text)) |
| Allows to change the text a TextCell contains. | |
| virtual const wxString & | GetValue () const |
| Gets the text this text cell contains. | |
| virtual const wxString | GetDisplayedString () const |
| Range | GetCellsInRect (const wxRect &rect) const |
| Returns the first and last cells within the given rectangle, recursing into the inner cells. | |
| Range | GetListCellsInRect (const wxRect &rect) const |
| Returns the first and last cells within the given rectangle, without recursing into the inner cells. | |
| virtual bool | IsOperator () const |
| Is this cell an operator? | |
| bool | IsCompound () const |
| Do we have an operator in this line - draw () in frac... | |
| virtual bool | IsShortNum () const |
| True if this cell represents a short number. | |
| GroupCell * | GetGroup () const |
| Returns the group cell this cell belongs to. | |
| virtual wxString | ListToString () const |
| Returns this cell list's representation as a string. | |
| wxString | VariablesAndFunctionsList () const |
| Returns all variable and function names used inside this list of cells. | |
| virtual wxString | ListToMatlab () const |
| Convert this list to its LaTeX representation. | |
| virtual wxString | ListToTeX () const |
| Convert this list to its LaTeX representation. | |
| virtual wxString | ListToXML () const |
| Convert this list to a representation fit for saving in a .wxmx file. | |
| virtual wxString | ListToMathML (bool startofline=false) const |
| Convert this list to a MathML representation. | |
| virtual wxString | ListToOMML (bool startofline=false) const |
| Convert this list to an OMML representation. | |
| virtual wxString | ListToRTF (bool startofline=false) const |
| Convert this list to an RTF representation. | |
| virtual wxString | ToOMML () const |
| Returns the cell's representation as OMML. | |
| virtual wxString | ToMatlab () const |
| Convert this cell to its Matlab representation. | |
| virtual wxString | GetXMLFlags () const |
| virtual wxString | ToMathML () const |
| Convert this cell to a representation fit for saving in a .wxmx file. | |
| virtual void | Unbreak () const |
| Undo breaking this cell into multiple lines. | |
| virtual void | UnbreakList () const |
| Unbreak this line. | |
| Cell * | GetNextToDraw () const |
| Get the next cell that needs to be drawn. | |
| virtual void | SetNextToDraw (Cell *next) const |
| Tells this cell which one should be the next cell to be drawn. | |
| template<typename T , typename Del , typename std::enable_if< std::is_base_of< Cell, T >::value, bool >::type = true> | |
| void | SetNextToDraw (const std::unique_ptr< T, Del > &ptr) |
| Tells this cell which one should be the next cell to be drawn. | |
| bool | IsComment () const |
| Determine if this cell contains text that isn't code. | |
| bool | IsHidden () const |
| Whether this cell is not to be drawn. | |
| bool | IsEditable (bool input=false) const |
| Is this cell editable? | |
| virtual bool | CanPopOut () const |
| Can this cell be popped out interactively in gnuplot? | |
| virtual wxString | GnuplotSource () const |
| Retrieve the gnuplot source data for this image. | |
| virtual void | ProcessEvent (wxKeyEvent &WXUNUSED(event)) |
| Processes a key event. | |
| virtual void | SelectPointText (wxPoint point) |
| Select the text at point. | |
| virtual void | SelectRectText (wxPoint one, wxPoint two) |
| Select the text between the two points. | |
| virtual void | PasteFromClipboard (bool primary=false) |
| Paste from the clipboard into this cell. | |
| virtual bool | CopyToClipboard () const |
| Copy this cell's editable contents to the clipboard. | |
| virtual bool | CutToClipboard () |
| Cut this cell's editable contents to the clipboard. | |
| virtual void | SelectAll () |
| Select all editable text of this cell. | |
| virtual bool | CanCopy () const |
| Select Can we copy the editable text of this cell? | |
| virtual wxPoint | PositionToPoint (size_t WXUNUSED(pos)) |
| Locates a char in the editable text of this cell. | |
| virtual wxPoint | PositionToPoint () |
| Locates the cursor in the editable text of this cell. | |
| virtual bool | IsDirty () const |
| Is this cell marked as "from an old maxima run"? | |
| virtual void | SwitchCaretDisplay () |
| virtual void | SetFocus (bool WXUNUSED(focus)) |
| Focus this editor cell. | |
| void | SetTextColor (wxDC *dc) |
| Sets the text color. | |
| virtual bool | IsActive () const |
| Is this editor cell focused? | |
| virtual void | SetStyle (TextStyle style) |
| Sets the TextStyle of this cell. | |
| bool | IsMath () const |
| Is this cell possibly output of maxima? | |
| virtual int | GetImageBorderWidth () const |
| 0 for ordinary cells, 1 for slide shows and diagrams displayed with a 1-pixel border | |
| void | CopyCommonData (const Cell &cell) |
| Copy common data (used when copying a cell) | |
| void | ClearToolTip () |
| Remove this cell's tooltip. | |
| void | SetToolTip (const wxString &tooltip) const |
| Set the tooltip to a given string. | |
| void | SetToolTip (const wxString *toolTip) const |
| Set the tooltip of this math cell - it must be exist at least as long as the cell does. Translation results behave that way. I.e. it must be a static string! | |
| void | AddToolTip (const wxString &tip) |
| Add another tooltip to this cell. | |
| bool | IsBrokenIntoLines () const |
| Whether this cell is broken into two or more lines. | |
| bool | GetSuppressMultiplicationDot () const |
| Do we want to begin this cell with a center dot if it is part of a product? | |
| void | SetSuppressMultiplicationDot (bool val) |
| bool | GetHidableMultSign () const |
| Whether this is a hidable multiplication sign. | |
| void | SetHidableMultSign (bool val) |
| virtual void | SetAltCopyText (const wxString &text) |
| What should end up if placing this cell on the clipboard? | |
| virtual const wxString & | GetAltCopyText () const |
| Get the text set using SetAltCopyText - may be empty. | |
| const wxString & | GetLocalToolTip () const |
| bool | IsNull () const |
| bool | HasControlBlock () const |
| bool | HasOneCellPtr () const |
| bool | IsFoldable () const |
| folding and unfolding | |
| GroupCell * | GetHiddenTree () const |
| Get the tree of cells that got hidden by folding this cell. | |
| bool | HideTree (std::unique_ptr< GroupCell > &&tree) |
| Fold the current cell. | |
| std::unique_ptr< GroupCell > | UnhideTree () |
| Unfold the current cell. | |
| bool | RevealHidden () |
| Unfold all that is needed to make the current cell seen. | |
| void | SetHiddenTreeParent (GroupCell *parent, GroupCell *last=nullptr) |
| Set the parent cell of hidden cells. | |
| GroupCell * | GetHiddenTreeParent () const |
| The cell this cell is hidden inside, if it is part of a folded subtree. | |
| GroupCell * | Fold () |
| Fold this cell. | |
| GroupCell * | Unfold () |
| Unfold this cell. | |
| GroupCell * | FoldAll () |
| Fold all cells. | |
| GroupCell * | UnfoldAll () |
| Unfold all cells. | |
| bool | IsLesserGCType (GroupType comparedTo) const |
| Document structure: Can this cell type be part of the contents of comparedTo? | |
Layout Engine (3-Pass Pipeline) | |
The layout engine follows a strict 3-pass process to ensure a single source of truth for cell geometry and positioning:
| |
| void | SetCurrentPointList (wxPoint point) |
| Helper to position a horizontal list of cells. | |
| void | SetCurrentPointDrawList (wxPoint point) |
| Helper to position a list of cells using the draw-list logic. | |
| wxPoint | GetCurrentPoint () const |
| Returns the pre-calculated worksheet position of the cell. | |
Static Public Member Functions | |
| static std::unique_ptr< Cell > | CopyList (GroupCell *group, const Cell *cell) |
| Return a copy of the given list of cells. | |
| static wxString | ToTeXImage (const Cell *tmp, const wxString &imgDir, const wxString &filename, std::size_t *imgCounter) |
| 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. | |
| static bool | IsOutputLabel (const Cell &cell) |
| Is this output cell one of the labels that start a line, like "(%o1)"? | |
| static std::vector< OutputLineWidths > | MeasureOutputLines (Cell *displayed) |
| The width of every line of output, so a line can be placed before it is walked. | |
| static wxString | TexEscapeOutputCell (wxString Input) |
| static wxString | OMML2RTF (wxXmlNode *node) |
| Converts an OMML tag to the corresponding RTF snippet. | |
| static wxString | OMML2RTF (wxString ommltext) |
| Converts OMML math to RTF math. | |
| static wxString | RTFescape (wxString, bool MarkDown=false) |
| Escape a string for RTF. | |
| static wxString | XMLescape (wxString) |
| Escape a string for XML. | |
| static wxString | wxColor2HtmlString (wxColor col) |
| static std::unique_ptr< Cell > | MakeVisiblyInvalidCell (GroupCell *group, Configuration *config) |
| static size_t | GetLiveInstanceCount () |
| static size_t | GetLiveControlBlockInstanceCount () |
Data Fields | |
| std::vector< std::pair< wxString, wxString > > | m_knownAnswers |
| A list of answers provided by the user. | |
Protected Member Functions | |
| wxCoord | GetInputIndent () const |
| void | UpdateCellsInGroup () |
| void | InitBitFields_GroupCell () |
| void | BreakUpAndMark () const |
| Break up the internal cells of this cell, and mark it as broken up. | |
| wxBitmap | BitmapFromSVG (wxString svgData, wxSize size) |
| Renders a bitmap from svgData at the requested size. | |
| std::unique_ptr< Cell > | MakeVisiblyInvalidCell () const |
| virtual void | FontsChanged () const |
| To be called if the font has changed. | |
| DocumentCellPointers * | GetDocumentCellPointers () const |
| The document-model half of the cell-pointer registry this cell uses. | |
| ViewCellPointers * | GetViewCellPointers () const |
| The transient view-state half of the cell-pointer registry this cell uses. | |
| void | InvalidateListCache () const |
Protected Attributes | |
| wxRect | m_outputRect {-1, -1, 0, 0} |
| Bounding rectangle of this group's output (results) area, in worksheet coordinates. | |
| DocumentCellPointers *const | m_documentCellPointers = GetDocumentCellPointers() |
| ViewCellPointers *const | m_viewCellPointers = GetViewCellPointers() |
| std::unique_ptr< GroupCell > | m_hiddenTree |
| here hidden (folded) tree of GCs is stored | |
| GroupCell * | m_hiddenTreeParent = {} |
| store linkage to the parent of the fold | |
| std::unique_ptr< Cell > | m_inputLabel |
| The input label of this cell. Is followed by the input of the cell. | |
| std::unique_ptr< Cell > | m_output |
| The maxima output this cell contains. | |
| std::unique_ptr< Cell > | m_layoutSuppressedNotice |
| Cached placeholder shown instead of the output while layout is suppressed. | |
| int | m_labelWidth_cached = 0 |
| Cache of the last width computed by GetInputIndent(); reused as the input indent while the input label's own width is not yet available. | |
| int | m_inputWidth |
| Width and height of this group's input area (input label plus editor), computed by RecalculateInput(); the output is stacked below m_inputHeight. | |
| int | m_inputHeight |
| int16_t | m_cellsInGroup = 1 |
| The number of cells the current group contains (-1, if no GroupCell) | |
| int16_t | m_numberedAnswersCount = 0 |
| AFontSize | m_mathFontSize |
| GroupType | m_groupType = {} |
| Which type this cell is of? | |
| bool | m_autoAnswer: 1 |
| Does this GroupCell automatically fill in the answer to questions? | |
| bool | m_inEvaluationQueue: 1 |
| bool | m_lastInEvaluationQueue: 1 |
| bool | m_updateConfusableCharWarnings: 1 |
| bool | m_suppressTooltipMarker: 1 |
| Suppress the yellow ToolTip marker? | |
| bool | m_cellsAppended: 1 |
| Output cells were appended since the last layout, so a recalculation is needed (see NeedsRecalculation()); cleared once the group is recalculated. | |
| bool | m_layoutSuppressed: 1 |
| Laying out this group's output exceeded the configured deadline. | |
| wxPoint | m_currentPoint {-1, -1} |
| The point in the work sheet at which this cell begins. | |
| CellPtr< GroupCell > | m_group |
| The GroupCell this list of cells belongs to. | |
| CellPtr< Cell > | m_nextToDraw |
| The next cell in the draw list. This has been factored into Cell temporarily to reduce the change "noise" when it will be subsequently removed. | |
| Configuration * | m_configuration |
| A pointer to the configuration responsible for this worksheet. | |
| const wxString * | m_toolTip |
| This tooltip is owned by us when m_ownsToolTip is true. Otherwise, it points to a "static" string. | |
| CachedInteger< wxCoord > | m_height |
| The height of this cell. | |
| CachedInteger< wxCoord > | m_width |
| The width of this cell; is recalculated by RecalculateHeight. | |
| CachedInteger< wxCoord > | m_center |
| The distance between the top and the insertion point of this cell. | |
| CachedInteger< wxCoord > | m_cachedMaxDrop |
| Cache for GetMaxDrop(): the largest drop (height below the center) of the cells on the first display line of the list starting at this cell. | |
| CachedInteger< wxCoord > | m_cachedCenterList |
| Cache for GetCenterList(): the largest center (height above the center) of the cells on the first display line of the list starting at this cell. | |
| CachedInteger< wxCoord > | m_cachedSumOfWidths |
| Cache for SumOfWidths(): the summed width of all cells of the draw list starting at this cell (the whole list, across line breaks). | |
| CachedInteger< wxCoord > | m_cachedLineWidth |
| Cache for GetLineWidth(): the width of only the first display line of the list starting at this cell (the widths summed up to the first line break). | |
| AFontSize | m_fontSize_Scaled = {} |
| The font size is smaller in super- and subscripts. | |
| AFontSize | m_fontSize = {} |
| The unscaled font size. | |
| AFontSize | m_fontSize_expected = {} |
| The font size this cell's owner last dictated (via RecalculateTracked()). | |
| CellType | m_type = MC_TYPE_DEFAULT |
| TextStyle | m_textStyle = TS_MATH |
| wxString | m_uuid |
| The UUID of this cell. | |
| std::map< wxString, wxString > | m_extraAttributes |
| Extra XML attributes we don't know yet. | |
| bool | m_forceBreakLine: 1 |
| bool | m_highlight: 1 |
Static Protected Attributes | |
| static wxString | m_lookalikeChars |
A specialized GroupCell that provides empty vertical space for alignment.
When two or three files are compared and one file lacks a cell that exists in the others, this cell is inserted as a placeholder to keep the corresponding cells in the other worksheets aligned horizontally.
|
overridevirtualinherited |
Add a semicolon to a code cell, if needed.
Defined in GroupCell and EditorCell
Reimplemented from Cell.
|
inherited |
The left edge of the gutter column the cell bracket is drawn in.
The bracket marks a cell's extent from the outside of the page: to the left of the content in a left-to-right document, and to the right of it in a right-to-left one. Everything that draws or hit-tests the bracket asks here, so the picture and the mouse cannot drift apart – which is the failure mode that makes mirrored user interfaces feel broken.
|
inherited |
Break lines in this list of cells.
The layout process follows a three-step mechanism to ensure that mathematical expressions and text fit within the available horizontal space of the worksheet:
|
virtualinherited |
Try to split this command into lines to make it fit on the screen.
| true | = This cell was split into lines. |
Reimplemented in AbsCell, BoxCell, ConjugateCell, DiffCell, ExptCell, FracCell, FunCell, IntCell, IntervalCell, LimitCell, ListCell, LongNumberCell, NamedBoxCell, ParenCell, SqrtCell, and SumCell.
|
protectedinherited |
Break up the internal cells of this cell, and mark it as broken up.
Sets the cell's size to 0, as in broken up state the contents of the cell will be displayed in 1D mode while this cell won't be displayed, at all.
|
inherited |
Cell list: Convert 2d math objects bigger than the screen width into linear form.
| true,if | this action has changed the height of cells. |
|
inherited |
Where this group cell's label (the "(%i1)", or a section's number) goes.
Beside the text on the outside of the page: left of it in a left-to-right document, right of it in a right-to-left one. The text column starts at the cell's own x in a right-to-left document, since the label no longer precedes it – see CalculateInputPosition().
|
inlinevirtualinherited |
Select Can we copy the editable text of this cell?
Reimplemented in EditorCell.
|
inlinevirtualinherited |
Can this cell be popped out interactively in gnuplot?
Reimplemented in AnimationCell, ImgCell, and ImgCellBase.
|
inherited |
How many cells does this cell contain?
The number of cells the current group contains (-1, if no GroupCell)
|
inherited |
|
inlinevirtualinherited |
Clears memory from cached items automatically regenerated when the cell is drawn.
The scaled version of the image will be recreated automatically once it is needed.
Reimplemented in AnimationCell, ImgCell, and ImgCellBase.
|
inherited |
Clears the cache of the whole list of cells starting with this one.
For details see ClearCache().
|
inherited |
Recursively collect all cells that are too wide to fit the line.
| wideCells | is the list to add the cells to. |
| clientWidth | is the width available for a line. |
|
inlineinherited |
Is a given point inside this cell?
| point | The point to test for collision with this cell |
|
inherited |
Is a part of this cell inside a certain rectangle?
| sm | The rectangle to test for collision with this cell |
| all |
|
|
inherited |
The x just past the right edge of the content column. See the definition.
The x just past the right edge of a cell's content column.
Deliberately the same for every cell, so that the gutter and the label column of a right-to-left document line up into straight columns the way they do on the left in a left-to-right one. Configuration::GetLineWidth() is the width the text is wrapped into and the label column is what GroupCell puts in front of it, so the two together are the content's width.
|
inlinevirtualinherited |
Copy this cell's editable contents to the clipboard.
Only interesting for EditorCells
Reimplemented in AnimationCell, EditorCell, ImgCell, and ImgCellBase.
|
inlinevirtualinherited |
Cut this cell's editable contents to the clipboard.
Only interesting for EditorCells
Reimplemented in EditorCell.
|
inherited |
The cell list to lay out and draw as this group's output.
Normally the real output (m_output). While layout is suppressed it returns a lightweight placeholder notice instead (lazily built and cached in m_layoutSuppressedNotice), so we neither line-break nor draw the prohibitively large real output - which is kept intact for export and a possible later relayout.
|
overridevirtualinherited |
Draw this GroupCell.
Also assigns all output cells contained in this GroupCell a y coordinate.
Reimplemented from Cell.
|
virtualinherited |
Draw a rectangle that marks this cell or this list of cells as selected.
| all |
|
| dc | The drawing context the box is drawn in. |
|
inherited |
Helper to draw a list of cells.
Iterates through the draw list and calls Draw() on each cell.
|
inherited |
Is this cell currently visible in the window?
Uses GetCurrentPoint() to check visibility.
|
overridevirtualinherited |
|
inherited |
Fold this cell.
|
inherited |
Fold all cells.
|
inlineprotectedvirtualinherited |
To be called if the font has changed.
Reimplemented in TextCell.
|
inherited |
Does this cell's font size match what its owner last dictated?
False means the cell was re-measured behind its owner's back at a different font size (the "text in a 2D fraction drawn at full size" bug class): its geometry no longer matches the extents cached by the surrounding cells. Cells that were never recalculated through an owner (no expectation recorded) and cells broken into lines (not drawn themselves) trivially match.
|
inlineinherited |
Insert (or remove) a forced linebreak at the beginning of this cell.
| force |
|
|
inlinevirtualinherited |
|
inherited |
The on-screen rectangle occupied by this cell's bracket.
The bracket is drawn in the indentation to the left of the cell's content, so this rectangle does not overlap GetRect(). It lets the worksheet redraw (or test for a redraw of) just the bracket without touching the cell's contents. Must stay in sync with the area DrawBracket() paints.
|
inherited |
Get the distance between the top and the center of this cell.
Remember that (for example with double fractions) the center does not have to be in the middle of a cell even if this object is — by definition — center-aligned.
|
overridevirtualinherited |
Returns the maximum distance between top and center of this line.
Note that the center doesn't need to be exactly in the middle of an object. For a fraction for example the center is exactly at the middle of the horizontal line.
Reimplemented from Cell.
|
inlineinherited |
Get the x position of the top left of this cell.
See m_currentPoint for more details.
|
inlineinherited |
Get the y position of the top left of this cell.
See m_currentPoint for more details.
|
virtualinherited |
Get the part for diff tag support.
only ExptCell and SubSupCell override this - and this function seems to be used by fractions that represent an diff() command.
Reimplemented in ExptCell, and SubSupCell.
|
inlineinherited |
Get the distance between the center and the bottom of this cell.
Remember that (for example with double fractions) the center does not have to be in the middle of an output cell even if the current object is — by definition — center-aligned.
This value is recalculated by Recalculate
|
inherited |
|
virtualinherited |
Returns the total height of this line.
Returns GetCenterList()+GetMaxDrop()
Reimplemented in ImgCell, and ImgCellBase.
|
inlineinherited |
The cell this cell is hidden inside, if it is part of a folded subtree.
|
overridevirtualinherited |
Returns the information about this cell's type.
Implements Cell.
|
inlineoverridevirtualinherited |
Retrieve an inner cell with given index which must be less than GetInnerCellCount.
Reimplemented from Cell.
|
inlineoverridevirtualinherited |
The number of inner cells - for use by the iterators.
Reimplemented from Cell.
|
overridevirtualinherited |
Select the cells inside this cell described by the rectangle rect.
Reimplemented from Cell.
|
inlineinherited |
Returns the list of cells the output consists of, starting with the label.
See also GetOutput();
|
inherited |
|
inherited |
How many pixels is the current line of this list of cells wide?
This command returns the real line width when all line breaks are really performed. See SumOfWidths().
|
overridevirtualinherited |
Returns the maximum distance between center and bottom of this line.
Note that the center doesn't need to be exactly in the middle of an object. For a fraction for example the center is exactly at the middle of the horizontal line.
Reimplemented from Cell.
|
inlineinherited |
Get the next cell that needs to be drawn.
In case of potential 2d objects like fractions either the fraction needs to be drawn as a single 2D object or the nominator, the cell containing the "/" and the denominator are pointed to by GetNextToDraw() as single separate objects.
|
inlineinherited |
Returns the list of cells the output consists of, starting after the label.
See also GetLabel()
|
overridevirtualinherited |
Get the smallest rectangle this cell fits in.
| all |
|
Reimplemented from Cell.
|
inlineinherited |
Do we want to begin this cell with a center dot if it is part of a product?
Maxima will represent a product like (a*b*c) by a list like the following: [*,a,b,c]. This would result us in converting (a*b*c) to the following LaTeX code: \left(\cdot a ß\cdot b \cdot c\right) which obviously is one \cdot too many => we need parenthesis cells to set this flag for the first cell in their "inner cell" list.
|
overridevirtualinherited |
Returns the tooltip for the element at the position point.
wxEmptyString means: No toolTip.
Reimplemented from Cell.
|
virtualinherited |
Gets the text this text cell contains.
Reimplemented in EditorCell, and TextCell.
|
inherited |
|
inlinevirtualinherited |
Retrieve the gnuplot source data for this image.
wxEmptyString means: No such data.
Reimplemented in AnimationCell, ImgCell, and ImgCellBase.
|
overridevirtualinherited |
Hide this cell. See IsHidden() for details.
Reimplemented from Cell.
|
inherited |
Fold the current cell.
|
inlinevirtualinherited |
Is this editor cell focused?
Reimplemented in EditorCell.
|
inlineinherited |
Whether this cell is broken into two or more lines.
Long abs(), conjugate(), fraction and similar cells can be displayed as 2D objects, but will be displayed in their linear form (and therefore broken into lines) if they end up to be wider than the screen. In this case m_isBrokenIntoLines is true.
|
inlineinherited |
Determine if this cell contains text that isn't code.
|
inlinevirtualinherited |
Is this cell marked as "from an old maxima run"?
Reimplemented in EditorCell.
|
inlineinherited |
Is this cell editable?
Editable cells include comments, code, captions and questions from maxima.
|
inherited |
folding and unfolding
Is this cell foldable?
|
inlineinherited |
Whether this cell is not to be drawn.
Currently the following items fall into this category:
Additionally folded GroupCells are marked as "hidden".
|
inherited |
Document structure: Can this cell type be part of the contents of comparedTo?
For example ordinary text cells can be part of a chapter and sections can be part of a chapter, too.
|
inlinevirtualinherited |
|
staticinherited |
Is this output cell one of the labels that start a line, like "(%o1)"?
Pass 2 (Arrange): Calculates positions for all cells in the output.
This is the central logic for laying out mathematical results. It iterates through the flattened draw list of output cells, handling:
|
inlinevirtualinherited |
True if this cell represents a short number.
Reimplemented in TextCell.
|
inherited |
Mark this group as needing a recalculation.
The single funnel for making NeedsRecalculation() true: it sets m_cellsAppended and - on the flag's false->true transition - notifies the layout engine through Configuration::RequestRecalculate(), so the engine always learns which cells became dirty. Don't set m_cellsAppended directly: that hides the change from the engine (and even suppresses the notification of a later MarkNeedsRecalculate(), since the flag is then already set).
|
staticinherited |
The width of every line of output, so a line can be placed before it is walked.
Only needed to set output flush right in a right-to-left document, where a line's starting x depends on how wide the whole line turns out to be.
|
virtualinherited |
True, if something that affects the cell size has changed.
Reimplemented from Cell.
|
overridevirtualinherited |
True, if something that affects the cell size has changed.
Reimplemented from Cell.
|
virtualinherited |
Paste from the clipboard into this cell.
| primary | Linux has two clipboards: One that automatically stores all selected test and that is pasted on middle-click (true) and the traditional copy-and-paste one (false). This parameter tells which clipboard to use. |
Reimplemented in EditorCell.
|
inlinevirtualinherited |
Locates the cursor in the editable text of this cell.
Reimplemented in EditorCell.
|
inlineoverridevirtual |
Forces the cell to a specific height determined by its matching counterpart in another worksheet.
Reimplemented from GroupCell.
|
inherited |
Recalculate both width and height of this list of cells.
Is faster than a RecalculateHeightList();RecalculateWidths();.
This is the authoritative way for a cell to lay out the cell lists it owns: the font size handed down here is remembered as each cell's expected font size (see FontSizeMatchesExpectation()).
|
inherited |
Recalculate the height of the output part of the cell.
|
inherited |
Recalculate this cell at the font size its owner dictates.
Like Recalculate(), but additionally remembers the dictated font size so debug checks can detect when a later recalculation - e.g. a lazy GetWidth() repair with a stale stored size - deviates from the size the surrounding layout was computed with. Used by RecalculateList() and by the few places (GroupCell) that recalculate individual cells directly.
|
inherited |
Remove all output cells attached to this one.
If called on an image cell it will not remove the image attached to it (even if the image technically is the first output cell attached to an image cell) but it will remove eventual error messages attached to the image.
|
inherited |
Reset the input label of the current cell.
Won't do nothing if the cell isn't a code cell and therefore isn't equipped with an input label.
|
inherited |
Mark all cached size information as "to be calculated".
Resets remembered size and position info for this cell and all cells inside it.
Resets cached data like width and the height of the current cell as well as the vertical position of the center. Then repeats this with
|
inherited |
Unfold all that is needed to make the current cell seen.
Unfold a tree from the bottom up, when a hidden cell needs to be seen.
Scale font sizes and line widths according to the zoom factor.
Is used for displaying/printing/exporting of text/maths
|
inlineinherited |
Scale font sizes and line widths according to the zoom factor.
Is used for displaying/printing/exporting of text/maths
|
inlinevirtualinherited |
Select all editable text of this cell.
Reimplemented in EditorCell.
|
virtualinherited |
Select the text at point.
Reimplemented in EditorCell.
|
virtualinherited |
Select the text between the two points.
Reimplemented in EditorCell.
|
virtualinherited |
What should end up if placing this cell on the clipboard?
AltCopyTexts for example make sense for subCells: a_n looks like a[n], even if both are lookalikes and the cell therefore needs to know what to put on the clipboard if this cell were copied. They also make sense in many other places we may never have thought about. But since we seriously want to save memory space on the ubiuitous TextCells it might be scary to apply this principle to them, at least if you know that text you copy from the internet to a terminal might contain additional commands with TextSize=0...
Reimplemented in ExptCell, FunCell, SubCell, SubSupCell, SumCell, and TextCell.
|
virtualinherited |
Tell this cell to use the configuration object config.
Reimplemented in AnimationCell.
|
virtualinherited |
Pass 2: Arrangement.
Sets the absolute position of the cell.
Overridden by composite cells to recursively position their children. After this call, GetCurrentPoint() returns the definitive location.
| point | The absolute worksheet coordinates for the cell's baseline/origin. |
Reimplemented from Cell.
|
overridevirtualinherited |
|
inherited |
Helper to position a list of cells using the draw-list logic.
This respects linearized cells (broken into lines) where the cell itself might have 0 width but its children need to be positioned.
|
inherited |
Helper to position a horizontal list of cells.
Iterates through the linked list starting at 'this', assigning positions and incrementing the x-coordinate by each cell's width.
Set the parent cell of hidden cells.
For every cell in this GroupCell, set m_hiddenTreeParent to parent.
This way, the field can be used to traverse up the tree no matter which child we are on. In other words, every child knows its parent node.
|
virtualinherited |
|
virtualinherited |
Tell this list of cells to be an exponent.
Fractions in exponents are displayed as 1D maths
|
inlinevirtualinherited |
Tells this cell which one should be the next cell to be drawn.
If the cell is displayed as 2d object this sets the pointer to the next cell.
If the cell is broken into lines this sets the pointer of the last of the list of cells this cell is displayed as.
Reimplemented in AbsCell, BoxCell, ConjugateCell, DiffCell, FracCell, FunCell, IntCell, IntervalCell, LimitCell, ListCell, LongNumberCell, NamedBoxCell, ParenCell, SqrtCell, and SumCell.
|
inlineinherited |
Tells this cell which one should be the next cell to be drawn.
If the cell is displayed as 2d object this sets the pointer to the next cell.
If the cell is broken into lines this sets the pointer of the last of the list of cells this cell is displayed as.
|
inlinevirtualinherited |
Sets the TextStyle of this cell.
Reimplemented in EditorCell, LabelCell, and TextCell.
|
virtualinherited |
Sets the text style according to the type.
Reimplemented in EditorCell, and TextCell.
|
inlinevirtualinherited |
|
inlinevirtualinherited |
Reimplemented in EditorCell.
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
Returns the cell's representation as OMML.
If this method returns wxEmptyString this might mean that this cell is better handled in RTF; The OOML can later be translated to the respective RTF maths commands using OMML2RTF.
Don't know why OMML was implemented in a world that already knows MathML, though.
Reimplemented in AbsCell, AtCell, DiffCell, ExptCell, FracCell, FunCell, IntCell, IntervalCell, LimitCell, ListCell, MatrCell, ParenCell, SqrtCell, SubCell, SubSupCell, SumCell, and TextCell.
|
overridevirtualinherited |
Returns the cell's representation as RTF.
If this method returns wxEmptyString this might mean that this cell is better handled in OMML.
Reimplemented from Cell.
|
overridevirtualinherited |
|
overridevirtualinherited |
Convert this cell to its LaTeX representation.
Reimplemented from Cell.
|
inherited |
Convert the cell to TeX code.
| imgDir | The directory eventual images should be stored in |
| filename | The base filename for all images |
| imgCounter | The location of the counter that tells how many unique image filenames we have already generated. NULL means: This TeX export doesn't contain other GroupCells that can export images and therefore need to enumerate them. |
|
staticinherited |
Write an animation's frames as images and emit an \animategraphics for it.
Returns an empty string (so the caller can fall back to a placeholder) if the cell isn't an animation, has no frames, or there is nowhere to write the frame images to.
|
overridevirtualinherited |
Convert this cell to a representation fit for saving in a .wxmx file.
Reimplemented from Cell.
|
virtualinherited |
|
virtualinherited |
Unbreak this line.
Some cells have different representations when they contain a line break. Examples for this are fractions or a set of parenthesis.
This function tries to return a list of cells to the single-line form.
|
inherited |
Unfold this cell.
|
inherited |
Unfold all cells.
|
inherited |
Returns all variable and function names used inside this list of cells.
Used for detecting lookalike chars in function and variable names.
|
mutableprotectedinherited |
Cache for GetMaxDrop(): the largest drop (height below the center) of the cells on the first display line of the list starting at this cell.
Lazily filled (together with the three caches below) by UpdateListCaches() and invalidated by InvalidateListCache().
|
mutableprotectedinherited |
The distance between the top and the insertion point of this cell.
|
mutableprotectedinherited |
The point in the work sheet at which this cell begins.
The begin of a cell is defined as
The current point is recalculated
|
mutableprotectedinherited |
The font size this cell's owner last dictated (via RecalculateTracked()).
Null if the cell was never recalculated through its owner. Compared against m_fontSize in FontSizeMatchesExpectation() to catch cells that were re-measured at the wrong size behind their owner's back.
|
mutableprotectedinherited |
The height of this cell.
|
mutableprotectedinherited |
Laying out this group's output exceeded the configured deadline.
While set, DisplayedOutput() shows a lightweight placeholder instead of the (kept-intact) real output and RecalculateOutput() no longer tries to break it into lines. Cleared whenever the output changes (AppendOutput() / RemoveOutput()), so layout is re-attempted for the new output.
|
mutableprotectedinherited |
Cached placeholder shown instead of the output while layout is suppressed.
When laying out the real output exceeds the configured deadline we keep m_output untouched (so it can still be exported, copied or re-laid-out later) and display this lightweight notice instead. It is a pure, regenerable cache value - delete it and DisplayedOutput() rebuilds an identical one - which is why it may be (re)created from const layout code. It is deliberately NOT part of the contiguous inner-cell block above: it is not a structural child of the group, only a drawn stand-in.
|
mutableprotectedinherited |
Bounding rectangle of this group's output (results) area, in worksheet coordinates.
Its size is computed by RecalculateOutput() and its position by UpdateOutputPositions(); Draw() uses it to skip drawing output that lies outside the update region, and it is handed out by GetOutputRect().