LibreOffice Module starmath (master) 1
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
SmCursor Class Reference

Formula cursor. More...

#include <cursor.hxx>

Collaboration diagram for SmCursor:
[legend]

Public Member Functions

 SmCursor (SmNode *tree, SmDocShell *pShell)
 
const SmCaretPosGetPosition () const
 Get position. More...
 
bool HasSelection () const
 True, if the cursor has a selection. More...
 
void Move (OutputDevice *pDev, SmMovementDirection direction, bool bMoveAnchor=true)
 Move the position of this cursor. More...
 
void MoveTo (OutputDevice *pDev, const Point &pos, bool bMoveAnchor)
 Move to the caret position closest to a given point. More...
 
void Delete ()
 Delete the current selection or do nothing. More...
 
void DeletePrev (OutputDevice *pDev)
 Delete selection, previous element or merge lines. More...
 
void InsertText (const OUString &aString)
 Insert text at the current position. More...
 
void InsertElement (SmFormulaElement element)
 Insert an element into the formula. More...
 
void InsertCommandText (const OUString &aCommandText)
 Insert command text translated into line entries at position. More...
 
void InsertSpecial (std::u16string_view aString)
 Insert a special node created from aString. More...
 
void InsertSubSup (SmSubSup eSubSup)
 Create sub-/super script. More...
 
bool InsertRow ()
 Insert a new row or newline. More...
 
void InsertFraction ()
 Insert a fraction, use selection as numerator. More...
 
void InsertBrackets (SmBracketType eBracketType)
 Create brackets around current selection, or new SmPlaceNode. More...
 
void Copy ()
 Copy the current selection. More...
 
void Cut ()
 Cut the current selection. More...
 
void Paste ()
 Paste the clipboard. More...
 
bool HasComplexSelection ()
 Returns true if more than one node is selected. More...
 
void Draw (OutputDevice &pDev, Point Offset, bool isCaretVisible)
 Draw the caret. More...
 
tools::Rectangle GetCaretRectangle (OutputDevice &rOutDev) const
 
tools::Rectangle GetSelectionRectangle (OutputDevice &rOutDev) const
 
bool IsAtTailOfBracket (SmBracketType eBracketType) const
 

Static Public Member Functions

static SmNodeFindTopMostNodeInLine (SmNode *pSNode, bool MoveUpIfSelected=false)
 Finds the topmost node in a visual line. More...
 

Private Member Functions

SmNodeFindSelectedNode (SmNode *pNode)
 Returns a node that is selected, if any could be found. More...
 
int CountSelectedNodes (SmNode *pNode)
 Count number of selected nodes, excluding line composition nodes. More...
 
void BuildGraph ()
 Build pGraph over caret positions. More...
 
void InsertNodes (std::unique_ptr< SmNodeList > pNewNodes)
 Insert new nodes in the tree after position. More...
 
bool SetCaretPosition (SmCaretPos pos)
 tries to set position to a specific SmCaretPos More...
 
void AnnotateSelection () const
 Set selected on nodes of the tree. More...
 
void BeginEdit ()
 Begin edit section where the tree will be modified. More...
 
void EndEdit ()
 End edit section where the tree will be modified. More...
 
void FinishEdit (std::unique_ptr< SmNodeList > pLineList, SmStructureNode *pParent, int nParentIndex, SmCaretPos PosAfterEdit, SmNode *pStartLine=nullptr)
 Finish editing. More...
 
void RequestRepaint ()
 Request the formula is repainted. More...
 

Static Private Member Functions

static bool IsLineCompositionNode (SmNode const *pNode)
 Is this one of the nodes used to compose a line. More...
 
static void LineToList (SmStructureNode *pLine, SmNodeList &rList)
 Convert a visual line to a list. More...
 
static void NodeToList (SmNode *&rpNode, SmNodeList &rList)
 Auxiliary function for calling LineToList on a node. More...
 
static void CloneLineToClipboard (SmStructureNode *pLine, SmClipboard *pClipboard)
 Clone a visual line to a clipboard. More...
 
static std::unique_ptr< SmNodeListCloneList (SmClipboard &rClipboard)
 Clone list of nodes in a clipboard (creates a deep clone) More...
 
static SmNodeList::iterator FindPositionInLineList (SmNodeList *pLineList, const SmCaretPos &rCaretPos)
 Find an iterator pointing to the node in pLineList following rCaretPos. More...
 
static SmCaretPos PatchLineList (SmNodeList *pLineList, SmNodeList::iterator aIter)
 Patch a line list after modification, merge SmTextNode, remove SmPlaceNode etc. More...
 
static SmNodeList::iterator TakeSelectedNodesFromList (SmNodeList *pLineList, SmNodeList *pSelectedNodes=nullptr)
 Take selected nodes from a list. More...
 
static SmNodeCreateBracket (SmBracketType eBracketType, bool bIsLeft)
 Create an instance of SmMathSymbolNode usable for brackets. More...
 

Private Attributes

SmCaretPosGraphEntrympAnchor
 
SmCaretPosGraphEntrympPosition
 
SmNodempTree
 Formula tree. More...
 
SmDocShellmpDocShell
 Owner of the formula tree. More...
 
std::unique_ptr< SmCaretPosGraphmpGraph
 Graph over caret position in the current tree. More...
 
SmClipboard maClipboard
 Clipboard holder. More...
 
int mnEditSections
 The number of times BeginEdit have been called Used to allow nesting of BeginEdit() and EndEdit() sections. More...
 
bool mbIsEnabledSetModifiedSmDocShell
 Holds data for BeginEdit() and EndEdit() More...
 

Friends

class SmDocShell
 

Detailed Description

Formula cursor.

This class is used to represent a cursor in a formula, which can be used to manipulate a formula programmatically.

Remarks
This class is a very intimate friend of SmDocShell.

Definition at line 68 of file cursor.hxx.

Constructor & Destructor Documentation

◆ SmCursor()

SmCursor::SmCursor ( SmNode tree,
SmDocShell pShell 
)
inline

Definition at line 71 of file cursor.hxx.

References BuildGraph().

Member Function Documentation

◆ AnnotateSelection()

void SmCursor::AnnotateSelection ( ) const
private

◆ BeginEdit()

void SmCursor::BeginEdit ( )
private

◆ BuildGraph()

void SmCursor::BuildGraph ( )
private

Build pGraph over caret positions.

Definition at line 113 of file cursor.cxx.

References SmCaretPosGraphEntry::CaretPos, SmCaretPos::IsValid(), mpAnchor, mpGraph, mpPosition, and mpTree.

Referenced by DeletePrev(), FinishEdit(), and SmCursor().

◆ CloneLineToClipboard()

void SmCursor::CloneLineToClipboard ( SmStructureNode pLine,
SmClipboard pClipboard 
)
staticprivate

Clone a visual line to a clipboard.

... but the selected part only. Doesn't clone SmErrorNodes, which are ignored as they are context dependent metadata.

Definition at line 1169 of file cursor.cxx.

References SmCloningVisitor::Clone(), CloneLineToClipboard(), Error, SmTextNode::GetFontDesc(), SmNode::GetScaleMode(), SmTextNode::GetSelectionEnd(), SmTextNode::GetSelectionStart(), SmTextNode::GetText(), IsLineCompositionNode(), length, start, and Text.

Referenced by CloneLineToClipboard(), and Copy().

◆ CloneList()

std::unique_ptr< SmNodeList > SmCursor::CloneList ( SmClipboard rClipboard)
staticprivate

Clone list of nodes in a clipboard (creates a deep clone)

Definition at line 1097 of file cursor.cxx.

References SmCloningVisitor::Clone().

Referenced by Paste().

◆ Copy()

void SmCursor::Copy ( )

◆ CountSelectedNodes()

int SmCursor::CountSelectedNodes ( SmNode pNode)
private

Count number of selected nodes, excluding line composition nodes.

Note this function doesn't count line composition nodes and it does count all subnodes as well as the owner nodes.

Used by SmCursor::HasComplexSelection()

Definition at line 1207 of file cursor.cxx.

References CountSelectedNodes(), SmNode::GetNumSubNodes(), IsLineCompositionNode(), and nCount.

Referenced by CountSelectedNodes(), and HasComplexSelection().

◆ CreateBracket()

SmNode * SmCursor::CreateBracket ( SmBracketType  eBracketType,
bool  bIsLeft 
)
staticprivate

Create an instance of SmMathSymbolNode usable for brackets.

Definition at line 665 of file cursor.cxx.

References Curly, Height, LBrace, MS_LBRACE, MS_LBRACKET, MS_LPARENT, MS_RBRACE, MS_RBRACKET, MS_RPARENT, RBrace, Round, SmNode::SetScaleMode(), Square, TLBRACE, TLBRACKET, TLPARENT, TRBRACE, TRBRACKET, and TRPARENT.

Referenced by FinishEdit(), and InsertBrackets().

◆ Cut()

void SmCursor::Cut ( )
inline

Cut the current selection.

Definition at line 163 of file cursor.hxx.

References Copy(), and Delete().

Referenced by SmGraphicWidget::KeyInput().

◆ Delete()

void SmCursor::Delete ( )

◆ DeletePrev()

void SmCursor::DeletePrev ( OutputDevice pDev)

◆ Draw()

void SmCursor::Draw ( OutputDevice pDev,
Point  Offset,
bool  isCaretVisible 
)

Draw the caret.

Definition at line 173 of file cursor.cxx.

References GetPosition(), and Offset.

Referenced by SmGraphicWidget::Paint().

◆ EndEdit()

void SmCursor::EndEdit ( )
private

◆ FindPositionInLineList()

SmNodeList::iterator SmCursor::FindPositionInLineList ( SmNodeList pLineList,
const SmCaretPos rCaretPos 
)
staticprivate

Find an iterator pointing to the node in pLineList following rCaretPos.

If rCaretPos.pSelectedNode cannot be found it is assumed that it's in front of pLineList, thus not an element in pLineList. In this case this method returns an iterator to the first element in pLineList.

If the current position is inside an SmTextNode, this node will be split in two, for this reason you should beaware that iterators to elements in pLineList may be invalidated, and that you should call PatchLineList() with this iterator if no action is taken.

Definition at line 354 of file cursor.cxx.

References SmTextNode::ChangeText(), SmTextNode::GetFontDesc(), SmTextNode::GetText(), SmNode::GetToken(), SmCaretPos::nIndex, SmCaretPos::pSelectedNode, and Text.

Referenced by InsertBrackets(), InsertFraction(), InsertNodes(), InsertRow(), and InsertSubSup().

◆ FindSelectedNode()

SmNode * SmCursor::FindSelectedNode ( SmNode pNode)
private

Returns a node that is selected, if any could be found.

Definition at line 1128 of file cursor.cxx.

References FindSelectedNode(), and SmNode::GetNumSubNodes().

Referenced by Copy(), Delete(), FindSelectedNode(), InsertBrackets(), InsertFraction(), InsertRow(), and InsertSubSup().

◆ FindTopMostNodeInLine()

SmNode * SmCursor::FindTopMostNodeInLine ( SmNode pSNode,
bool  MoveUpIfSelected = false 
)
static

Finds the topmost node in a visual line.

If MoveUpIfSelected is true, this will move up to the parent line if the parent of the current line is selected.

Definition at line 1109 of file cursor.cxx.

References SmNode::GetParent(), IsLineCompositionNode(), and SmNode::IsSelected().

Referenced by Copy(), SmCaretLinesVisitor::DefaultVisit(), Delete(), DeletePrev(), InsertBrackets(), InsertFraction(), InsertNodes(), InsertRow(), InsertSubSup(), and SmCaretLinesVisitor::Visit().

◆ FinishEdit()

void SmCursor::FinishEdit ( std::unique_ptr< SmNodeList pLineList,
SmStructureNode pParent,
int  nParentIndex,
SmCaretPos  PosAfterEdit,
SmNode pStartLine = nullptr 
)
private

Finish editing.

Finishes editing by parsing pLineList and inserting back into pParent at nParentIndex. This method also rebuilds the graph, annotates the selection, sets caret position and Calls EndEdit.

Remarks
Please note that this method will delete pLineList, as the elements are taken.
Parameters
pLineListList the constitutes the edited line.
pParentParent to which the line should be inserted.
nParentIndexIndex in parent where the line should be inserted.
PosAfterEditCaret position to look for after rebuilding graph.
pStartLineLine to take first position in, if PosAfterEdit cannot be found, leave it NULL for pLineList.

Definition at line 1230 of file cursor.cxx.

References AnnotateSelection(), BuildGraph(), CreateBracket(), EndEdit(), SmDocShell::GetFormat(), SmNode::GetType(), Height, mpAnchor, mpDocShell, mpPosition, NONE, parser, Round, SetCaretPosition(), SmStructureNode::SetSubNode(), SubSup, and TLEFT.

Referenced by Delete(), InsertBrackets(), InsertFraction(), InsertNodes(), InsertRow(), and InsertSubSup().

◆ GetCaretRectangle()

tools::Rectangle SmCursor::GetCaretRectangle ( OutputDevice rOutDev) const

Definition at line 177 of file cursor.cxx.

References SmCaretRectanglesVisitor::getCaret(), and GetPosition().

Referenced by SmViewShell::getLOKPayload().

◆ GetPosition()

const SmCaretPos & SmCursor::GetPosition ( ) const
inline

Get position.

Definition at line 84 of file cursor.hxx.

References SmCaretPosGraphEntry::CaretPos, and mpPosition.

Referenced by Draw(), GetCaretRectangle(), and IsAtTailOfBracket().

◆ GetSelectionRectangle()

tools::Rectangle SmCursor::GetSelectionRectangle ( OutputDevice rOutDev) const

◆ HasComplexSelection()

bool SmCursor::HasComplexSelection ( )

Returns true if more than one node is selected.

This method is used for implementing backspace and delete. If one of these causes a complex selection, e.g. a node with subnodes or similar, this should not be deleted immediately.

Definition at line 1222 of file cursor.cxx.

References AnnotateSelection(), CountSelectedNodes(), HasSelection(), and mpTree.

Referenced by DeletePrev(), and SmGraphicWidget::KeyInput().

◆ HasSelection()

bool SmCursor::HasSelection ( ) const
inline

True, if the cursor has a selection.

Definition at line 87 of file cursor.hxx.

References mpAnchor, and mpPosition.

Referenced by Copy(), Delete(), DeletePrev(), HasComplexSelection(), InsertBrackets(), InsertFraction(), InsertRow(), InsertSubSup(), and SmGraphicWidget::KeyInput().

◆ InsertBrackets()

void SmCursor::InsertBrackets ( SmBracketType  eBracketType)

◆ InsertCommandText()

void SmCursor::InsertCommandText ( const OUString &  aCommandText)

Insert command text translated into line entries at position.

Note: This method uses the parser to translate a command text into a tree, then it copies line entries from this tree into the current tree. Will not work for commands such as newline or ##, if position is in a matrix. This will work for stuff like "A intersection B". But stuff spanning multiple lines or dependent on the context which position is placed in will not work!

Definition at line 1027 of file cursor.cxx.

References BeginEdit(), Delete(), EndEdit(), SmDocShell::GetFormat(), SmDocShell::GetParser(), InsertNodes(), mpDocShell, NodeToList(), and AbstractSmParser::ParseExpression().

Referenced by SmViewShell::Execute().

◆ InsertElement()

void SmCursor::InsertElement ( SmFormulaElement  element)

◆ InsertFraction()

void SmCursor::InsertFraction ( )

◆ InsertNodes()

void SmCursor::InsertNodes ( std::unique_ptr< SmNodeList pNewNodes)
private

◆ InsertRow()

bool SmCursor::InsertRow ( )

Insert a new row or newline.

Inserts a new row if position is in a matrix or stack command. Otherwise a newline is inserted if we're in a toplevel line.

Returns
True, if a new row/line could be inserted.
Remarks
If the caret is placed in a subline of a command that doesn't support this operator the method returns FALSE, and doesn't do anything.

Definition at line 697 of file cursor.cxx.

References AnnotateSelection(), BeginEdit(), SmCaretPosGraphEntry::CaretPos, SmToken::eType, FindPositionInLineList(), FindSelectedNode(), FindTopMostNodeInLine(), FinishEdit(), SmMatrixNode::GetNumCols(), SmMatrixNode::GetNumRows(), SmStructureNode::GetNumSubNodes(), SmNode::GetParent(), SmStructureNode::GetSubNode(), SmNode::GetToken(), SmNode::GetType(), HasSelection(), i, SmStructureNode::IndexOfSubNode(), Line, Matrix, mpPosition, mpTree, NodeToList(), PatchLineList(), SmCaretPos::pSelectedNode, SmMatrixNode::SetRowCol(), SmStructureNode::SetSubNode(), SmNode::SetToken(), Table, TakeSelectedNodesFromList(), TBINOM, TNEWLINE, and TSTACK.

Referenced by SmGraphicWidget::KeyInput().

◆ InsertSpecial()

void SmCursor::InsertSpecial ( std::u16string_view  aString)

Insert a special node created from aString.

Used for handling insert request from the "catalog" dialog. The provided string should be formatted as the desired command: phi Note: this method ONLY supports commands defined in Math.xcu

For more complex expressions use InsertCommandText, this method doesn't use SmParser, this means that it's faster, but not as strong.

Definition at line 1000 of file cursor.cxx.

References SmToken::aText, BeginEdit(), SmToken::cMathChar, Delete(), EndEdit(), SmToken::eType, SmDocShell::GetFormat(), InsertNodes(), mpDocShell, SmToken::nGroup, SmToken::nLevel, NONE, SmSpecialNode::Prepare(), comphelper::string::strip(), TSPECIAL, and u.

Referenced by SmViewShell::Execute().

◆ InsertSubSup()

void SmCursor::InsertSubSup ( SmSubSup  eSubSup)

Create sub-/super script.

If there's a selection, it will be move into the appropriate sub-/super scription of the node in front of it. If there's no node in front of position (or the selection), a sub-/super scription of a new SmPlaceNode will be made.

If there's is an existing subscription of the node, the caret will be moved into it, and any selection will replace it.

Definition at line 498 of file cursor.cxx.

References AnnotateSelection(), BeginEdit(), SmCaretPosGraphEntry::CaretPos, FindPositionInLineList(), FindSelectedNode(), FindTopMostNodeInLine(), FinishEdit(), SmDocShell::GetFormat(), SmNode::GetParent(), SmCaretPos::GetPosAfter(), SmSubSupNode::GetSubSup(), SmNode::GetType(), HasSelection(), SmStructureNode::IndexOfSubNode(), mpDocShell, mpPosition, mpTree, SmToken::nGroup, NodeToList(), SmNodeListParser::Parse(), PatchLineList(), Power, SmNode::Prepare(), SmCaretPos::pSelectedNode, SmSubSupNode::SetBody(), SmSubSupNode::SetSubSup(), size, SubSup, and TakeSelectedNodesFromList().

◆ InsertText()

void SmCursor::InsertText ( const OUString &  aString)

◆ IsAtTailOfBracket()

bool SmCursor::IsAtTailOfBracket ( SmBracketType  eBracketType) const

◆ IsLineCompositionNode()

bool SmCursor::IsLineCompositionNode ( SmNode const *  pNode)
staticprivate

Is this one of the nodes used to compose a line.

These are SmExpression, SmBinHorNode, SmUnHorNode etc.

Definition at line 1193 of file cursor.cxx.

References Align, BinHor, Expression, Font, SmNode::GetType(), Line, and UnHor.

Referenced by CloneLineToClipboard(), Copy(), CountSelectedNodes(), FindTopMostNodeInLine(), and NodeToList().

◆ LineToList()

void SmCursor::LineToList ( SmStructureNode pLine,
SmNodeList rList 
)
staticprivate

Convert a visual line to a list.

Note this method will delete all the nodes that will no longer be needed. that includes pLine! This method also deletes SmErrorNode's as they're just meta info in the line.

Definition at line 1144 of file cursor.cxx.

References Align, BinHor, SmStructureNode::ClearSubNodes(), Error, Expression, Font, Line, LineToList(), and UnHor.

Referenced by LineToList(), and NodeToList().

◆ Move()

void SmCursor::Move ( OutputDevice pDev,
SmMovementDirection  direction,
bool  bMoveAnchor = true 
)

◆ MoveTo()

void SmCursor::MoveTo ( OutputDevice pDev,
const Point pos,
bool  bMoveAnchor 
)

◆ NodeToList()

static void SmCursor::NodeToList ( SmNode *&  rpNode,
SmNodeList rList 
)
inlinestaticprivate

Auxiliary function for calling LineToList on a node.

This method sets pNode = NULL and remove it from its parent. (Assuming it has a parent, and is a child of it).

Definition at line 238 of file cursor.hxx.

References SmNode::GetParent(), index, SmStructureNode::IndexOfSubNode(), IsLineCompositionNode(), LineToList(), and SmStructureNode::SetSubNode().

Referenced by Delete(), DeletePrev(), InsertBrackets(), InsertCommandText(), InsertFraction(), InsertNodes(), InsertRow(), and InsertSubSup().

◆ Paste()

void SmCursor::Paste ( )

Paste the clipboard.

Definition at line 1087 of file cursor.cxx.

References BeginEdit(), CloneList(), Delete(), EndEdit(), InsertNodes(), and maClipboard.

Referenced by SmGraphicWidget::KeyInput().

◆ PatchLineList()

SmCaretPos SmCursor::PatchLineList ( SmNodeList pLineList,
SmNodeList::iterator  aIter 
)
staticprivate

Patch a line list after modification, merge SmTextNode, remove SmPlaceNode etc.

Parameters
pLineListThe line list to patch
aIterIterator pointing to the element that needs to be patched with its previous.

When the list is patched text nodes before and after aIter will be merged. If there's an, in the context, inappropriate SmPlaceNode before or after aIter it will also be removed.

Returns
A caret position equivalent to one selecting the node before aIter, the method returns an invalid SmCaretPos to indicate placement in front of the line.

Definition at line 388 of file cursor.cxx.

References SmTextNode::ChangeText(), SmToken::eType, SmCaretPos::GetPosAfter(), SmTextNode::GetText(), SmNode::GetToken(), SmNode::GetType(), SmNodeListParser::IsOperator(), Place, Text, and TNUMBER.

Referenced by Delete(), DeletePrev(), InsertBrackets(), InsertFraction(), InsertNodes(), InsertRow(), and InsertSubSup().

◆ RequestRepaint()

void SmCursor::RequestRepaint ( )
private

Request the formula is repainted.

Definition at line 1333 of file cursor.cxx.

References SfxObjectShell::GetCreateMode(), comphelper::LibreOfficeKit::isActive(), mpDocShell, SmDocShell::Repaint(), and SmGetActiveView().

Referenced by EndEdit(), Move(), and MoveTo().

◆ SetCaretPosition()

bool SmCursor::SetCaretPosition ( SmCaretPos  pos)
private

tries to set position to a specific SmCaretPos

Returns
false on failure to find the position in pGraph.

Definition at line 155 of file cursor.cxx.

References mpAnchor, mpGraph, mpPosition, and pos.

Referenced by DeletePrev(), and FinishEdit().

◆ TakeSelectedNodesFromList()

SmNodeList::iterator SmCursor::TakeSelectedNodesFromList ( SmNodeList pLineList,
SmNodeList pSelectedNodes = nullptr 
)
staticprivate

Take selected nodes from a list.

Puts the selected nodes into pSelectedNodes, or if pSelectedNodes is NULL deletes the selected nodes. Note: If there's a selection inside an SmTextNode this node will be split, and it will not be merged when the selection have been taken. Use PatchLineList on the iterator returns to fix this.

Returns
An iterator pointing to the element following the selection taken.

Definition at line 441 of file cursor.cxx.

References SmTextNode::ChangeText(), SmTextNode::GetFontDesc(), SmTextNode::GetSelectionEnd(), SmTextNode::GetSelectionStart(), SmTextNode::GetText(), SmNode::GetToken(), and Text.

Referenced by Delete(), InsertBrackets(), InsertFraction(), InsertRow(), and InsertSubSup().

Friends And Related Function Documentation

◆ SmDocShell

friend class SmDocShell
friend

Definition at line 195 of file cursor.hxx.

Member Data Documentation

◆ maClipboard

SmClipboard SmCursor::maClipboard
private

Clipboard holder.

Definition at line 205 of file cursor.hxx.

Referenced by Copy(), and Paste().

◆ mbIsEnabledSetModifiedSmDocShell

bool SmCursor::mbIsEnabledSetModifiedSmDocShell
private

Holds data for BeginEdit() and EndEdit()

Definition at line 332 of file cursor.hxx.

Referenced by BeginEdit(), and EndEdit().

◆ mnEditSections

int SmCursor::mnEditSections
private

The number of times BeginEdit have been called Used to allow nesting of BeginEdit() and EndEdit() sections.

Definition at line 330 of file cursor.hxx.

Referenced by BeginEdit(), and EndEdit().

◆ mpAnchor

SmCaretPosGraphEntry* SmCursor::mpAnchor
private

◆ mpDocShell

SmDocShell* SmCursor::mpDocShell
private

◆ mpGraph

std::unique_ptr<SmCaretPosGraph> SmCursor::mpGraph
private

Graph over caret position in the current tree.

Definition at line 203 of file cursor.hxx.

Referenced by BuildGraph(), Move(), MoveTo(), and SetCaretPosition().

◆ mpPosition

SmCaretPosGraphEntry * SmCursor::mpPosition
private

◆ mpTree

SmNode* SmCursor::mpTree
private

The documentation for this class was generated from the following files: