SequenceElement Class Reference
The element that contains a number of children. More...
#include <sequenceelement.h>
Inheritance diagram for SequenceElement:


Public Types | |
typedef ChildIterator | iterator |
Public Member Functions | |
SequenceElement (BasicElement *parent=0) | |
SequenceElement (const SequenceElement &) | |
virtual SequenceElement * | clone () |
virtual bool | accept (ElementVisitor *visitor) |
virtual bool | readOnly (const FormulaCursor *) const |
virtual bool | isTextOnly () const |
virtual BasicElement * | goToPos (FormulaCursor *, bool &handled, const LuPixelPoint &point, const LuPixelPoint &parentOrigin) |
void | setSizeReduction (const ContextStyle &context) |
bool | isEmpty () |
virtual void | calcSizes (const ContextStyle &context, ContextStyle::TextStyle tstyle, ContextStyle::IndexStyle istyle) |
virtual void | draw (QPainter &painter, const LuPixelRect &r, const ContextStyle &context, ContextStyle::TextStyle tstyle, ContextStyle::IndexStyle istyle, const LuPixelPoint &parentOrigin) |
virtual void | dispatchFontCommand (FontCommand *cmd) |
virtual void | drawEmptyRect (QPainter &painter, const ContextStyle &context, const LuPixelPoint &upperLeft) |
virtual void | calcCursorSize (const ContextStyle &context, FormulaCursor *cursor, bool smallCursor) |
virtual void | drawCursor (QPainter &painter, const ContextStyle &context, FormulaCursor *cursor, bool smallCursor) |
virtual void | moveLeft (FormulaCursor *cursor, BasicElement *from) |
virtual void | moveRight (FormulaCursor *cursor, BasicElement *from) |
virtual void | moveWordLeft (FormulaCursor *cursor) |
virtual void | moveWordRight (FormulaCursor *cursor) |
virtual void | moveUp (FormulaCursor *cursor, BasicElement *from) |
virtual void | moveDown (FormulaCursor *cursor, BasicElement *from) |
virtual void | moveHome (FormulaCursor *cursor) |
virtual void | moveEnd (FormulaCursor *cursor) |
virtual void | goInside (FormulaCursor *cursor) |
virtual void | insert (FormulaCursor *, QPtrList< BasicElement > &, Direction) |
virtual void | remove (FormulaCursor *, QPtrList< BasicElement > &, Direction) |
virtual void | normalize (FormulaCursor *, Direction) |
virtual BasicElement * | getChild (FormulaCursor *, Direction=beforeCursor) |
virtual void | selectChild (FormulaCursor *cursor, BasicElement *child) |
virtual void | childWillVanish (FormulaCursor *cursor, BasicElement *child) |
int | countChildren () const |
bool | isChildNumber (uint pos, BasicElement *child) |
void | selectAllChildren (FormulaCursor *cursor) |
bool | onlyTextSelected (FormulaCursor *cursor) |
virtual KCommand * | buildCommand (Container *, Request *) |
virtual KCommand * | input (Container *container, QChar ch) |
virtual KCommand * | input (Container *container, QKeyEvent *event) |
virtual void | parse () |
void | getChildrenDom (QDomDocument &doc, QDomElement elem, uint from, uint to) |
bool | buildChildrenFromDom (QPtrList< BasicElement > &list, QDomNode n) |
virtual QString | toLatex () |
virtual QString | formulaString () |
virtual void | writeMathML (QDomDocument &doc, QDomNode parent, bool oasisFormat=false) |
BasicElement * | getChild (uint i) |
int | childPos (BasicElement *child) |
int | childPos (const BasicElement *child) const |
iterator | begin () |
iterator | end () |
Static Public Member Functions | |
static void | setCreationStrategy (ElementCreationStrategy *strategy) |
Protected Member Functions | |
virtual QString | getTagName () const |
virtual void | writeDom (QDomElement element) |
virtual bool | readAttributesFromDom (QDomElement element) |
virtual bool | readContentFromDom (QDomNode &node) |
virtual void | setChildrenPositions () |
virtual BasicElement * | createElement (QString type) |
luPixel | getChildPosition (const ContextStyle &context, uint child) |
virtual bool | isFirstOfToken (BasicElement *child) |
Detailed Description
The element that contains a number of children.The children are aligned in one line.
Definition at line 40 of file sequenceelement.h.
Member Function Documentation
|
Visit this element. An implementation of the visitor pattern. Implements BasicElement. Reimplemented in NameSequence. Definition at line 94 of file sequenceelement.cc. |
|
Reimplemented in FormulaElement. Definition at line 100 of file sequenceelement.cc. Referenced by FormulaCursor::isReadOnly(). |
|
Definition at line 63 of file sequenceelement.h. Referenced by IndexElement::calcSizes(), BracketElement::calcSizes(), BracketElement::draw(), IndexElement::getCharacter(), and SingleContentElement::getCharacter(). |
|
Sets the cursor and returns the element the point is in. The handled flag shows whether the cursor has been set. This is needed because only the innermost matching element is allowed to set the cursor. Reimplemented from BasicElement. Definition at line 109 of file sequenceelement.cc. References countChildren(), BasicElement::getWidth(), BasicElement::getX(), and BasicElement::goToPos(). Referenced by SymbolElement::goToPos(), RootElement::goToPos(), IndexElement::goToPos(), FractionElement::goToPos(), FormulaElement::goToPos(), and SingleContentElement::goToPos(). |
|
Tells the sequence to have a smaller size than its parant.
|
|
Definition at line 155 of file sequenceelement.cc. References BasicElement::isInvisible(). Referenced by calcSizes(), and draw(). |
|
Calculates our width and height and our children's parentPosition.
Implements BasicElement. Reimplemented in FormulaElement. Definition at line 172 of file sequenceelement.cc. References ContextStyle::axisHeight(), BasicElement::calcSizes(), BasicElement::getBaseline(), BasicElement::getElementType(), ContextStyle::getEmptyRectHeight(), ContextStyle::getEmptyRectWidth(), BasicElement::getHeight(), BasicElement::getWidth(), isEmpty(), isFirstOfToken(), BasicElement::isInvisible(), KoZoomHandler::ptToPixelX(), setChildrenPositions(), and BasicElement::setX(). Referenced by SymbolElement::calcSizes(), RootElement::calcSizes(), MatrixElement::calcSizes(), IndexElement::calcSizes(), FractionElement::calcSizes(), FormulaElement::calcSizes(), UnderlineElement::calcSizes(), OverlineElement::calcSizes(), and BracketElement::calcSizes(). |
|
Draws the whole element including its children. The `parentOrigin' is the point this element's parent starts. We can use our parentPosition to get our own origin then. Implements BasicElement. Reimplemented in FormulaElement. Definition at line 248 of file sequenceelement.cc. References BasicElement::draw(), ElementType::end(), BasicElement::getElementType(), isEmpty(), BasicElement::isInvisible(), and ElementType::start(). Referenced by SymbolElement::draw(), RootElement::draw(), IndexElement::draw(), FractionElement::draw(), UnderlineElement::draw(), OverlineElement::draw(), and BracketElement::draw(). |
|
Dispatch this FontCommand to all our TextElement children.
Reimplemented from BasicElement. Definition at line 301 of file sequenceelement.cc. References BasicElement::dispatchFontCommand(). Referenced by SymbolElement::dispatchFontCommand(), RootElement::dispatchFontCommand(), IndexElement::dispatchFontCommand(), FractionElement::dispatchFontCommand(), and SingleContentElement::dispatchFontCommand(). |
|
If the cursor is inside a sequence it needs to be drawn.
Reimplemented in NameSequence. Definition at line 372 of file sequenceelement.cc. References FormulaCursor::cursorSize, FormulaCursor::getCursorPoint(), FormulaCursor::getCursorSize(), ContextStyle::getLineWidth(), FormulaCursor::isSelection(), KoZoomHandler::layoutUnitToPixelX(), and KoZoomHandler::layoutUnitToPixelY(). Referenced by FormulaCursor::draw(), and NameSequence::drawCursor(). |
|
Enters this element while moving to the left starting inside the element `from'. Searches for a cursor position inside this element or to the left of it. Reimplemented from BasicElement. Definition at line 440 of file sequenceelement.cc. References BasicElement::entered(), BasicElement::formula(), FormulaCursor::getPos(), FormulaCursor::isSelectionMode(), FormulaCursor::setMark(), and FormulaCursor::setTo(). Referenced by SymbolElement::goToPos(), IndexElement::goToPos(), FractionElement::goToPos(), SymbolElement::insert(), IndexElement::insert(), FractionElement::insert(), SymbolElement::moveDown(), IndexElement::moveDown(), SymbolElement::moveLeft(), RootElement::moveLeft(), IndexElement::moveLeft(), FractionElement::moveLeft(), SingleContentElement::moveLeft(), SymbolElement::moveUp(), IndexElement::moveUp(), NameSequence::moveWordLeft(), moveWordLeft(), SymbolElement::normalize(), RootElement::normalize(), IndexElement::normalize(), and SingleContentElement::normalize(). |
|
|
Moves to the beginning of this word or if we are there already to the beginning of the previous.
Reimplemented in NameSequence. Definition at line 549 of file sequenceelement.cc. References FormulaCursor::getPos(), moveLeft(), FormulaCursor::setTo(), and ElementType::start(). |
|
Moves to the end of this word or if we are there already to the end of the next.
Reimplemented in NameSequence. Definition at line 564 of file sequenceelement.cc. References ElementType::end(), FormulaCursor::getPos(), moveRight(), and FormulaCursor::setTo(). |
|
Enters this element while moving up starting inside the element `from'. Searches for a cursor position inside this element or above it. Reimplemented from BasicElement. Definition at line 584 of file sequenceelement.cc. References BasicElement::formula(), and moveRight(). |
|
Enters this element while moving down starting inside the element `from'. Searches for a cursor position inside this element or below it. Reimplemented from BasicElement. Definition at line 604 of file sequenceelement.cc. References BasicElement::formula(), and moveRight(). |
|
Moves the cursor to the first position in this sequence. (That is before the first child.) Reimplemented from BasicElement. Definition at line 623 of file sequenceelement.cc. References BasicElement::getParent(). |
|
Moves the cursor to the last position in this sequence. (That is behind the last child.) Reimplemented from BasicElement. Definition at line 641 of file sequenceelement.cc. References FormulaCursor::getElement(), BasicElement::getParent(), FormulaCursor::isSelectionMode(), FormulaCursor::setMark(), and FormulaCursor::setTo(). |
|
Sets the cursor inside this element to its start position. For most elements that is the main child. Reimplemented from BasicElement. Definition at line 665 of file sequenceelement.cc. References FormulaCursor::setSelection(), and FormulaCursor::setTo(). Referenced by FormulaCursor::FormulaCursor(), FormulaCursor::formulaLoaded(), and FormulaCursor::replaceSelectionWith(). |
|
Inserts all new children at the cursor position. Places the cursor according to the direction. The inserted elements will be selected. The list will be emptied but stays the property of the caller. Reimplemented from BasicElement. Definition at line 704 of file sequenceelement.cc. References BasicElement::formula(), FormulaCursor::getPos(), parse(), BasicElement::setParent(), and FormulaCursor::setTo(). |
|
Removes all selected children and returns them. Places the cursor to where the children have been. Reimplemented from BasicElement. Definition at line 733 of file sequenceelement.cc. References BasicElement::formula(), FormulaCursor::getPos(), FormulaCursor::getSelectionEnd(), FormulaCursor::getSelectionStart(), FormulaCursor::isSelection(), parse(), FormulaCursor::setSelection(), and FormulaCursor::setTo(). Referenced by FormulaCursor::remove(). |
|
Moves the cursor to a normal place where new elements might be inserted.
Reimplemented from BasicElement. Definition at line 806 of file sequenceelement.cc. References FormulaCursor::setSelection(). |
|
Returns the child at the cursor. Does not care about the selection. Reimplemented from BasicElement. Definition at line 816 of file sequenceelement.cc. Referenced by ElementType::text(), and NameSequence::writeMathML(). |
|
Sets the cursor to select the child. The mark is placed before, the position behind it. Reimplemented from BasicElement. Definition at line 836 of file sequenceelement.cc. |
|
Moves the cursor away from the given child. The cursor is guaranteed to be inside this element. Reimplemented from BasicElement. Definition at line 844 of file sequenceelement.cc. |
|
Definition at line 240 of file sequenceelement.h. Referenced by buildCommand(), goToPos(), FormulaElement::goToPos(), NameSequence::moveWordRight(), FormulaCursor::remove(), FormulaCursor::replaceByMainChildContent(), and NameSequence::writeMathML(). |
|
Definition at line 245 of file sequenceelement.h. Referenced by isFirstOfToken(). |
|
Selects all children. The cursor is put behind, the mark before them. Definition at line 864 of file sequenceelement.cc. Referenced by FormulaCursor::replaceByMainChildContent(). |
|
This is called by the container to get a command depending on the current cursor position (this is how the element gets chosen) and the request.
Reimplemented from BasicElement. Reimplemented in FormulaElement, and NameSequence. Definition at line 885 of file sequenceelement.cc. References Container::activeCursor(), FontCommand::addElement(), KFCAdd::addElement(), countChildren(), ElementCreationStrategy::createBracketElement(), ElementCreationStrategy::createEmptyElement(), ElementCreationStrategy::createFractionElement(), ElementCreationStrategy::createIndexElement(), ElementCreationStrategy::createMatrixElement(), ElementCreationStrategy::createMultilineElement(), ElementCreationStrategy::createNameSequence(), ElementCreationStrategy::createOverlineElement(), ElementCreationStrategy::createRootElement(), ElementCreationStrategy::createSpaceElement(), ElementCreationStrategy::createSymbolElement(), ElementCreationStrategy::createTextElement(), ElementCreationStrategy::createUnderlineElement(), Container::document(), BasicElement::formula(), FormulaCursor::getActiveTextElement(), TextElement::getCharacter(), IndexElement::getIndex(), IndexElement::getMainChild(), FormulaCursor::getPos(), FormulaCursor::getSelectionEnd(), FormulaCursor::getSelectionStart(), SymbolTable::greekLetters(), MatrixDialog::h, FormulaCursor::isReadOnly(), FormulaCursor::isSelection(), TextElement::isSymbol(), FormulaCursor::moveEnd(), FormulaCursor::moveLeft(), FormulaCursor::moveRight(), FormulaCursor::normal(), FormulaCursor::selectActiveElement(), KFCAddReplacing::setElement(), FormulaCursor::setSelection(), FractionElement::showLine(), SymbolTable::unicodeFromSymbolFont(), and MatrixDialog::w. Referenced by NameSequence::buildCommand(), FormulaElement::buildCommand(), and input(). |
|
Parses the input. It's the container which does create new elements because it owns the undo stack. But only the sequence knows what chars are allowed. Reimplemented in NameSequence. Definition at line 1229 of file sequenceelement.cc. References buildCommand(), and Container::document(). Referenced by input(), and FormulaElement::input(). |
|
Parses the input. It's the container which does create new elements because it owns the undo stack. But only the sequence knows what chars are allowed. Reimplemented from BasicElement. Reimplemented in FormulaElement. Definition at line 1152 of file sequenceelement.cc. References buildCommand(), BasicElement::formula(), input(), FormulaCursor::moveDown(), FormulaCursor::moveEnd(), FormulaCursor::moveHome(), FormulaCursor::moveLeft(), FormulaCursor::moveRight(), and FormulaCursor::moveUp(). |
|
Parses the sequence and generates a new syntax tree. Has to be called after each modification. Definition at line 1399 of file sequenceelement.cc. References BasicElement::formula(), BasicElement::getParent(), parse(), and SequenceParser::parse(). Referenced by buildChildrenFromDom(), insert(), parse(), remove(), and NameSequence::setElementType(). |
|
Stores the given childrens dom in the element.
Definition at line 1310 of file sequenceelement.cc. Referenced by FormulaCursor::copy(), and writeDom(). |
|
Builds elements from the given node and its siblings and puts them into the list. Returns false if an error occures. Definition at line 1325 of file sequenceelement.cc. References BasicElement::buildFromDom(), createElement(), parse(), and BasicElement::setParent(). Referenced by FormulaCursor::buildElementsFromDom(), and readContentFromDom(). |
|
Reimplemented from BasicElement. Reimplemented in FormulaElement. Definition at line 1441 of file sequenceelement.cc. References BasicElement::toLatex(). Referenced by SymbolElement::toLatex(), RootElement::toLatex(), IndexElement::toLatex(), FractionElement::toLatex(), and FormulaElement::toLatex(). |
|
Same as above, just MathML.
Reimplemented from BasicElement. Reimplemented in FormulaElement, and NameSequence. Definition at line 1471 of file sequenceelement.cc. References BasicElement::getElementType(), and ElementType::getPrev(). Referenced by SymbolElement::writeMathML(), RootElement::writeMathML(), IndexElement::writeMathML(), FractionElement::writeMathML(), FormulaElement::writeMathML(), and SingleContentElement::writeMathML(). |
|
Definition at line 306 of file sequenceelement.h. |
|
Returns the tag name of this element type.
Reimplemented from BasicElement. Reimplemented in FormulaElement, and NameSequence. Definition at line 363 of file sequenceelement.h. |
|
Appends our attributes to the dom element.
Reimplemented from BasicElement. Reimplemented in FormulaElement. Definition at line 1363 of file sequenceelement.cc. References getChildrenDom(), and BasicElement::writeDom(). Referenced by FormulaElement::writeDom(). |
|
Reads our attributes from the element. Returns false if it failed. Reimplemented from BasicElement. Reimplemented in FormulaElement. Definition at line 1376 of file sequenceelement.cc. References BasicElement::readAttributesFromDom(). Referenced by FormulaElement::readAttributesFromDom(). |
|
Reads our content from the node. Sets the node to the next node that needs to be read. Returns false if it failed. Reimplemented from BasicElement. Reimplemented in FormulaElement. Definition at line 1389 of file sequenceelement.cc. References buildChildrenFromDom(), and BasicElement::readContentFromDom(). Referenced by FormulaElement::readContentFromDom(). |
|
Sets the childrens' positions after their size has been calculated.
Definition at line 233 of file sequenceelement.cc. References BasicElement::getBaseline(), and BasicElement::setY(). Referenced by calcSizes(). |
|
Creates a new element with the given type.
Reimplemented in NameSequence. Definition at line 1355 of file sequenceelement.cc. References ElementCreationStrategy::createElement(). Referenced by buildChildrenFromDom(). |
|
Definition at line 411 of file sequenceelement.cc. |
|
Reimplemented in NameSequence. Definition at line 1435 of file sequenceelement.cc. References BasicElement::getElementType(), and isChildNumber(). Referenced by calcSizes(). |
The documentation for this class was generated from the following files: