lib

SequenceElement Class Reference

#include <sequenceelement.h>

Inheritance diagram for SequenceElement:

BasicElement FormulaElement NameSequence List of all members.

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.


Public Types

typedef ChildIterator iterator

Public Member Functions

 SequenceElement (BasicElement *parent=0)
 ~SequenceElement ()
 SequenceElement (const SequenceElement &)
virtual SequenceElementclone ()
virtual bool accept (ElementVisitor *visitor)
virtual bool readOnly (const FormulaCursor *) const
virtual bool isTextOnly () const
virtual BasicElementgoToPos (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, bool activeCursor)
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 BasicElementgetChild (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 KCommandbuildCommand (Container *, Request *)
virtual KCommandinput (Container *container, QChar ch)
virtual KCommandinput (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)
BasicElementgetChild (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 BasicElementcreateElement (QString type)
luPixel getChildPosition (const ContextStyle &context, uint child)
virtual bool isFirstOfToken (BasicElement *child)

Classes

class  ChildIterator

Member Function Documentation

bool SequenceElement::accept ( ElementVisitor visitor  )  [virtual]

Visit this element.

An implementation of the visitor pattern.

Implements BasicElement.

Reimplemented in NameSequence.

Definition at line 94 of file sequenceelement.cc.

bool SequenceElement::buildChildrenFromDom ( QPtrList< BasicElement > &  list,
QDomNode  n 
)

Builds elements from the given node and its siblings and puts them into the list.

Returns false if an error occures.

Definition at line 1327 of file sequenceelement.cc.

KCommand * SequenceElement::buildCommand ( Container ,
Request  
) [virtual]

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.

Returns:
the command that performs the requested action with the containers active cursor.

Reimplemented from BasicElement.

Reimplemented in FormulaElement, and NameSequence.

Definition at line 887 of file sequenceelement.cc.

void SequenceElement::calcSizes ( const ContextStyle context,
ContextStyle::TextStyle  tstyle,
ContextStyle::IndexStyle  istyle 
) [virtual]

Calculates our width and height and our children's parentPosition.

Implements BasicElement.

Reimplemented in FormulaElement.

Definition at line 172 of file sequenceelement.cc.

void SequenceElement::childWillVanish ( FormulaCursor cursor,
BasicElement child 
) [virtual]

Moves the cursor away from the given child.

The cursor is guaranteed to be inside this element.

Reimplemented from BasicElement.

Definition at line 846 of file sequenceelement.cc.

int SequenceElement::countChildren (  )  const [inline]

Returns:
the number of children we have.

Definition at line 241 of file sequenceelement.h.

BasicElement * SequenceElement::createElement ( QString  type  )  [protected, virtual]

Creates a new element with the given type.

Parameters:
type the desired type of the element

Reimplemented in NameSequence.

Definition at line 1357 of file sequenceelement.cc.

void SequenceElement::dispatchFontCommand ( FontCommand cmd  )  [virtual]

Dispatch this FontCommand to all our TextElement children.

Reimplemented from BasicElement.

Definition at line 301 of file sequenceelement.cc.

void SequenceElement::draw ( QPainter &  painter,
const LuPixelRect &  r,
const ContextStyle context,
ContextStyle::TextStyle  tstyle,
ContextStyle::IndexStyle  istyle,
const LuPixelPoint &  parentOrigin 
) [virtual]

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.

void SequenceElement::drawCursor ( QPainter &  painter,
const ContextStyle context,
FormulaCursor cursor,
bool  smallCursor,
bool  activeCursor 
) [virtual]

If the cursor is inside a sequence it needs to be drawn.

Reimplemented in NameSequence.

Definition at line 372 of file sequenceelement.cc.

BasicElement* SequenceElement::getChild ( uint  i  )  [inline]

Returns:
the child at position i.

Definition at line 307 of file sequenceelement.h.

BasicElement * SequenceElement::getChild ( FormulaCursor ,
Direction  = beforeCursor 
) [virtual]

Returns the child at the cursor.

Does not care about the selection.

Reimplemented from BasicElement.

Definition at line 818 of file sequenceelement.cc.

luPixel SequenceElement::getChildPosition ( const ContextStyle context,
uint  child 
) [protected]

Returns:
the position where the child starts.
Parameters:
context the context the child is in
child the child's number

Definition at line 413 of file sequenceelement.cc.

void SequenceElement::getChildrenDom ( QDomDocument &  doc,
QDomElement  elem,
uint  from,
uint  to 
)

Stores the given childrens dom in the element.

Definition at line 1312 of file sequenceelement.cc.

virtual QString SequenceElement::getTagName (  )  const [inline, protected, virtual]

Returns the tag name of this element type.

Reimplemented from BasicElement.

Reimplemented in FormulaElement, and NameSequence.

Definition at line 366 of file sequenceelement.h.

void SequenceElement::goInside ( FormulaCursor cursor  )  [virtual]

Sets the cursor inside this element to its start position.

For most elements that is the main child.

Reimplemented from BasicElement.

Definition at line 667 of file sequenceelement.cc.

BasicElement * SequenceElement::goToPos ( FormulaCursor ,
bool &  handled,
const LuPixelPoint &  point,
const LuPixelPoint &  parentOrigin 
) [virtual]

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.

KCommand * SequenceElement::input ( Container container,
QKeyEvent *  event 
) [virtual]

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 1154 of file sequenceelement.cc.

KCommand * SequenceElement::input ( Container container,
QChar  ch 
) [virtual]

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 1231 of file sequenceelement.cc.

void SequenceElement::insert ( FormulaCursor ,
QPtrList< BasicElement > &  ,
Direction   
) [virtual]

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 706 of file sequenceelement.cc.

bool SequenceElement::isChildNumber ( uint  pos,
BasicElement child 
) [inline]

Returns:
whether the child has the given number.

Definition at line 246 of file sequenceelement.h.

bool SequenceElement::isEmpty (  ) 

Returns:
true if there is no visible element in the sequence. Please note that there might be phantom elements.

Definition at line 155 of file sequenceelement.cc.

bool SequenceElement::isFirstOfToken ( BasicElement child  )  [protected, virtual]

Returns:
whether the child is the first element of its token.

Reimplemented in NameSequence.

Definition at line 1437 of file sequenceelement.cc.

virtual bool SequenceElement::isTextOnly (  )  const [inline, virtual]

Returns:
true if the sequence contains only text.

Definition at line 63 of file sequenceelement.h.

void SequenceElement::moveDown ( FormulaCursor cursor,
BasicElement from 
) [virtual]

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 606 of file sequenceelement.cc.

void SequenceElement::moveEnd ( FormulaCursor cursor  )  [virtual]

Moves the cursor to the last position in this sequence.

(That is behind the last child.)

Reimplemented from BasicElement.

Definition at line 643 of file sequenceelement.cc.

void SequenceElement::moveHome ( FormulaCursor cursor  )  [virtual]

Moves the cursor to the first position in this sequence.

(That is before the first child.)

Reimplemented from BasicElement.

Definition at line 625 of file sequenceelement.cc.

void SequenceElement::moveLeft ( FormulaCursor cursor,
BasicElement from 
) [virtual]

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 442 of file sequenceelement.cc.

void SequenceElement::moveRight ( FormulaCursor cursor,
BasicElement from 
) [virtual]

Enters this element while moving to the right starting inside the element `from'.

Searches for a cursor position inside this element or to the right of it.

Reimplemented from BasicElement.

Definition at line 498 of file sequenceelement.cc.

void SequenceElement::moveUp ( FormulaCursor cursor,
BasicElement from 
) [virtual]

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 586 of file sequenceelement.cc.

void SequenceElement::moveWordLeft ( FormulaCursor cursor  )  [virtual]

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 551 of file sequenceelement.cc.

void SequenceElement::moveWordRight ( FormulaCursor cursor  )  [virtual]

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 566 of file sequenceelement.cc.

void SequenceElement::normalize ( FormulaCursor ,
Direction   
) [virtual]

Moves the cursor to a normal place where new elements might be inserted.

Reimplemented from BasicElement.

Definition at line 808 of file sequenceelement.cc.

void SequenceElement::parse (  )  [virtual]

Parses the sequence and generates a new syntax tree.

Has to be called after each modification.

Definition at line 1401 of file sequenceelement.cc.

bool SequenceElement::readAttributesFromDom ( QDomElement  element  )  [protected, virtual]

Reads our attributes from the element.

Returns false if it failed.

Reimplemented from BasicElement.

Reimplemented in FormulaElement.

Definition at line 1378 of file sequenceelement.cc.

bool SequenceElement::readContentFromDom ( QDomNode &  node  )  [protected, virtual]

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 1391 of file sequenceelement.cc.

bool SequenceElement::readOnly ( const FormulaCursor  )  const [virtual]

Returns:
whether its prohibited to change the sequence with this cursor.

Reimplemented in FormulaElement.

Definition at line 100 of file sequenceelement.cc.

void SequenceElement::remove ( FormulaCursor ,
QPtrList< BasicElement > &  ,
Direction   
) [virtual]

Removes all selected children and returns them.

Places the cursor to where the children have been.

Reimplemented from BasicElement.

Definition at line 735 of file sequenceelement.cc.

void SequenceElement::selectAllChildren ( FormulaCursor cursor  ) 

Selects all children.

The cursor is put behind, the mark before them.

Definition at line 866 of file sequenceelement.cc.

void SequenceElement::selectChild ( FormulaCursor cursor,
BasicElement child 
) [virtual]

Sets the cursor to select the child.

The mark is placed before, the position behind it.

Reimplemented from BasicElement.

Definition at line 838 of file sequenceelement.cc.

void SequenceElement::setChildrenPositions (  )  [protected, virtual]

Sets the childrens' positions after their size has been calculated.

See also:
calcSizes

Definition at line 233 of file sequenceelement.cc.

void SequenceElement::setSizeReduction ( const ContextStyle context  ) 

Tells the sequence to have a smaller size than its parant.

QString SequenceElement::toLatex (  )  [virtual]

Returns:
the latex representation of the element and of the element's children

Reimplemented from BasicElement.

Reimplemented in FormulaElement.

Definition at line 1443 of file sequenceelement.cc.

void SequenceElement::writeDom ( QDomElement  element  )  [protected, virtual]

Appends our attributes to the dom element.

Reimplemented from BasicElement.

Reimplemented in FormulaElement.

Definition at line 1365 of file sequenceelement.cc.

void SequenceElement::writeMathML ( QDomDocument &  doc,
QDomNode &  parent,
bool  oasisFormat = false 
) [virtual]

Same as above, just MathML.

Reimplemented from BasicElement.

Reimplemented in FormulaElement, and NameSequence.

Definition at line 1473 of file sequenceelement.cc.


The documentation for this class was generated from the following files:
KDE Home | KDE Accessibility Home | Description of Access Keys