lib Library API Documentation

Container Class Reference

The document. More...

#include <kformulacontainer.h>

Inheritance diagram for Container:

Inheritance graph
[legend]
Collaboration diagram for Container:

Collaboration graph
[legend]
List of all members.

Public Types

enum  ViewActions {
  EXIT_LEFT, EXIT_RIGHT, EXIT_ABOVE, EXIT_BELOW,
  INSERT_FORMULA, REMOVE_FORMULA
}

Signals

void cursorMoved (FormulaCursor *cursor)
void leaveFormula (Container *formula, FormulaCursor *cursor, int cmd)
void formulaChanged (int width, int height)
void formulaChanged (double width, double height)
void statusMsg (const QString &msg)
void errorMsg (const QString &)
void elementWillVanish (BasicElement *element)
void formulaLoaded (FormulaElement *)
void baseSizeChanged (int)

Public Member Functions

 Container (Document *doc, int pos, bool registerMe=true)
void initialize ()
FormulaCursor * createCursor ()
void elementRemoval (BasicElement *child)
void changed ()
void cursorHasMoved (FormulaCursor *)
void moveOutLeft (FormulaCursor *)
void moveOutRight (FormulaCursor *)
void moveOutAbove (FormulaCursor *)
void moveOutBelow (FormulaCursor *)
void tell (const QString &msg)
void removeFormula (FormulaCursor *)
void registerFormula (int pos=-1)
void unregisterFormula ()
void baseSizeChanged (int size, bool owned)
void draw (QPainter &painter, const QRect &r, const QColorGroup &cg, bool edit=false)
void draw (QPainter &painter, const QRect &r, bool edit=false)
void save (QDomElement root)
void saveMathML (QTextStream &stream)
bool loadMathML (QDomDocument doc)
bool load (QDomElement fe)
QString texString ()
QString formulaString ()
void print (KPrinter &printer)
QImage drawImage (int width, int height)
FormulaCursor * activeCursor ()
const FormulaCursor * activeCursor () const
void setActiveCursor (FormulaCursor *cursor)
QRect boundingRect () const
QRect coveredRect ()
double width () const
double height () const
double baseline () const
void moveTo (int x, int y)
virtual double getDocumentX () const
virtual double getDocumentY () const
virtual void setDocumentPosition (double, double)
virtual void startEvaluation ()
void testDirty ()
virtual void recalc ()
bool isEmpty ()
virtual Document * document () const
virtual const SymbolTable & getSymbolTable () const
int fontSize () const
void setFontSize (int pointSize, bool forPrint=false)
void setFontSizeDirect (int pointSize)
void input (QKeyEvent *event)
void performRequest (Request *request)
void paste ()
void paste (QDomDocument document, QString desc)
void copy ()
void cut ()

Protected Member Functions

KoCommandHistory * getHistory () const
FormulaElement * rootElement () const
virtual FormulaElement * createMainSequence ()
void emitErrorMsg (const QString &)

Friends

class MimeSource
class TestFormulaCursor
class TestFormulaElement
class TestIndexElement
class TestCommands

Detailed Description

The document.

Actually only one part of the whole. Provides everything to edit the formula.

Definition at line 90 of file kformulacontainer.h.


Constructor & Destructor Documentation

Container::Container (  Document *  doc,
int  pos,
bool  registerMe = true
) 
 

Constructs a new formula and register it with the document.

Parameters:
doc the document we belong to.
pos the formulas position inside its document.
registerMe whether the formula is to be registered with the document.

Definition at line 109 of file kformulacontainer.cc.

References registerFormula().


Member Function Documentation

void Container::initialize (   ) 
 

Needs to be called before anything else can be done with a newly created formula! This is required to allow polymorphic formulas.

(The virtual method problem.)

Definition at line 126 of file kformulacontainer.cc.

References createCursor(), createMainSequence(), and recalc().

Referenced by Document::createFormula().

FormulaCursor * Container::createCursor (   ) 
 

Returns a new cursor.

It points to the beginning of the formula. The cursor gets no messages if the formula changes so use this with care!

Definition at line 141 of file kformulacontainer.cc.

References rootElement().

Referenced by initialize().

void Container::elementRemoval (  BasicElement *  child  )  [virtual]
 

Gets called just before the child is removed from the element tree.

Reimplemented from FormulaDocument.

Definition at line 157 of file kformulacontainer.cc.

References elementWillVanish().

void Container::changed (   )  [virtual]
 

Gets called when ever something changes and we need to recalc.

Reimplemented from FormulaDocument.

Definition at line 166 of file kformulacontainer.cc.

void Container::cursorHasMoved (  FormulaCursor *   )  [virtual]
 

Gets called when a request has the side effect of moving the cursor.

In the end any operation that moves the cursor should call this.

Reimplemented from FormulaDocument.

Definition at line 171 of file kformulacontainer.cc.

void Container::moveOutLeft (  FormulaCursor *   )  [virtual]
 

Inside the formula occurred an event that must be handled outside.

Reimplemented from FormulaDocument.

Definition at line 176 of file kformulacontainer.cc.

References leaveFormula().

void Container::registerFormula (  int  pos = -1  ) 
 

Register and unregister this formula with its document.

Definition at line 207 of file kformulacontainer.cc.

References document(), and Document::registerFormula().

Referenced by Container().

void Container::baseSizeChanged (  int  size,
bool  owned
)  [virtual]
 

The base size changed.

If not owned it uses the default one now.

Reimplemented from FormulaDocument.

Definition at line 218 of file kformulacontainer.cc.

References ContextStyle::baseSize(), document(), and Document::getContextStyle().

void Container::draw (  QPainter &  painter,
const QRect &  r,
const QColorGroup &  cg,
bool  edit = false
) 
 

Draws the whole thing.

Definition at line 294 of file kformulacontainer.cc.

void Container::draw (  QPainter &  painter,
const QRect &  r,
bool  edit = false
) 
 

Draws the whole thing.

Definition at line 301 of file kformulacontainer.cc.

References document(), FormulaElement::draw(), Document::getContextStyle(), KoZoomHandler::pixelToLayoutUnit(), and rootElement().

void Container::save (  QDomElement  root  ) 
 

Saves the data into the document.

Definition at line 484 of file kformulacontainer.cc.

References rootElement().

void Container::saveMathML (  QTextStream &  stream  ) 
 

Save formula as MathML.

Definition at line 518 of file kformulacontainer.cc.

References rootElement(), and FormulaElement::writeMathML().

bool Container::loadMathML (  QDomDocument  doc  ) 
 

Load function.

Load the formula from the specified file containing MathML .

Definition at line 528 of file kformulacontainer.cc.

References KoCommandHistory::clear(), document(), Document::getContextStyle(), MathML2KFormula::getKFormulaDom(), load(), and MathML2KFormula::startConversion().

bool Container::load (  QDomElement  fe  ) 
 

Loads a formula from the document.

Definition at line 494 of file kformulacontainer.cc.

References BasicElement::buildFromDom(), createMainSequence(), formulaLoaded(), recalc(), and rootElement().

Referenced by loadMathML(), and Document::loadXML().

QString Container::texString (   ) 
 

a tex string for the formula

Definition at line 587 of file kformulacontainer.cc.

References rootElement(), and FormulaElement::toLatex().

void Container::print (  KPrinter &  printer  ) 
 

Prints the formula.

Definition at line 542 of file kformulacontainer.cc.

References document(), FormulaElement::draw(), and rootElement().

QImage Container::drawImage (  int  width,
int  height
) 
 

Returns:
an image that looks like out formula.

Definition at line 555 of file kformulacontainer.cc.

References document(), Document::getContextStyle(), KoZoomHandler::layoutUnitToPixelX(), KoZoomHandler::layoutUnitToPixelY(), ContextStyle::setZoomAndResolution(), and KoZoomHandler::zoom().

FormulaCursor * Container::activeCursor (   ) 
 

Returns:
the cursor to be used for editing.

Definition at line 229 of file kformulacontainer.cc.

Referenced by SequenceElement::buildCommand(), copy(), cut(), SequenceElement::input(), input(), FormulaElement::input(), paste(), and recalc().

void Container::setActiveCursor (  FormulaCursor *  cursor  ) 
 

Sets the cursor that is to be used for any editing.

The active cursor might 0. In this case you must not request any change from the formula.

Definition at line 244 of file kformulacontainer.cc.

References Document::activate(), and document().

QRect Container::boundingRect (   )  const
 

Returns:
the formula's size.

Definition at line 407 of file kformulacontainer.cc.

References document(), Document::getContextStyle(), KoZoomHandler::layoutUnitToPixelX(), KoZoomHandler::layoutUnitToPixelY(), and rootElement().

Referenced by coveredRect().

QRect Container::coveredRect (   ) 
 

Returns:
the formula's size including its active cursor.

Definition at line 416 of file kformulacontainer.cc.

References boundingRect(), document(), Document::getContextStyle(), KoZoomHandler::layoutUnitToPixelX(), KoZoomHandler::layoutUnitToPixelY(), and rootElement().

double Container::baseline (   )  const
 

Returns:
the distance between the upper bound and the formulas base line.

Definition at line 445 of file kformulacontainer.cc.

References document(), Document::getContextStyle(), KoTextZoomHandler::layoutUnitPtToPt(), KoZoomHandler::pixelYToPt(), and rootElement().

void Container::moveTo (  int  x,
int  y
) 
 

Moves the formula to a new location.

This location will be the upper left corner of the rectangle that is drawn by the painter.

Definition at line 452 of file kformulacontainer.cc.

References document(), Document::getContextStyle(), KoZoomHandler::pixelToLayoutUnitX(), KoZoomHandler::pixelToLayoutUnitY(), rootElement(), BasicElement::setX(), and BasicElement::setY().

virtual double Container::getDocumentX (   )  const [inline, virtual]
 

KWord uses a transformed painter to draw formulas, so every formula has the internal position (0,0).

But we might need to sort our formulas according to their position inside the document. (This is only needed for math formulas.)

Definition at line 264 of file kformulacontainer.h.

virtual void Container::startEvaluation (   )  [inline, virtual]
 

Start the documents evaluation at this formula.

This must be the formula that changed. The formulas above it won't be affected by this change.

This has no meaning in not evaluating formulas.

Definition at line 275 of file kformulacontainer.h.

void Container::testDirty (   ) 
 

Recalcs the formula and emits the .*Changed signals if needed.

Definition at line 262 of file kformulacontainer.cc.

References recalc().

void Container::recalc (   )  [virtual]
 

Recalc the formula.

Definition at line 269 of file kformulacontainer.cc.

References activeCursor(), FormulaElement::calcSizes(), cursorMoved(), formulaChanged(), KoTextZoomHandler::layoutUnitPtToPt(), KoZoomHandler::layoutUnitToPixelX(), KoZoomHandler::layoutUnitToPixelY(), KoZoomHandler::pixelXToPt(), KoZoomHandler::pixelYToPt(), and rootElement().

Referenced by initialize(), load(), and testDirty().

bool Container::isEmpty (   ) 
 

Returns:
true if there is no element.

Definition at line 282 of file kformulacontainer.cc.

References SequenceElement::countChildren(), and rootElement().

Document * Container::document (   )  const [virtual]
 

Returns:
the document this formula belongs to.

Definition at line 107 of file kformulacontainer.cc.

Referenced by baseline(), baseSizeChanged(), boundingRect(), SequenceElement::buildCommand(), copy(), coveredRect(), draw(), drawImage(), SequenceElement::input(), loadMathML(), moveTo(), print(), registerFormula(), and setActiveCursor().

void Container::setFontSize (  int  pointSize,
bool  forPrint = false
) 
 

Sets the base font size of this formula.

Definition at line 470 of file kformulacontainer.cc.

References FormulaElement::getBaseSize(), and rootElement().

void Container::cursorMoved (  FormulaCursor *  cursor  )  [signal]
 

The cursor has been moved but the formula hasn't been changed.

The view that owns the cursor needs to know this.

Referenced by recalc().

void Container::leaveFormula (  Container *  formula,
FormulaCursor *  cursor,
int  cmd
)  [signal]
 

The cursor wants to leave this formula.

Referenced by moveOutLeft().

void Container::formulaChanged (  int  width,
int  height
)  [signal]
 

The formula has changed and needs to be redrawn.

Referenced by recalc().

void Container::statusMsg (  const QString &  msg  )  [signal]
 

A message that might be a useful hint.

Meant for the statusbar.

void Container::errorMsg (  const QString &   )  [signal]
 

A message that describes an error.

Meant for a message box. (?)

void Container::elementWillVanish (  BasicElement *  element  )  [signal]
 

The element is going to leave the formula with and all its children.

Referenced by elementRemoval().

void Container::formulaLoaded (  FormulaElement *   )  [signal]
 

Tells the cursors that we have just loaded a new formula.

Referenced by load().

void Container::baseSizeChanged (  int   )  [signal]
 

We've got a new base size.

void Container::input (  QKeyEvent *  event  ) 
 

General input.

Definition at line 317 of file kformulacontainer.cc.

References activeCursor().

void Container::paste (   ) 
 

Insert data from the clipboard.

Definition at line 337 of file kformulacontainer.cc.

void Container::paste (  QDomDocument  document,
QString  desc
) 
 

Insert data from the document.

Definition at line 351 of file kformulacontainer.cc.

References activeCursor(), KFCAdd::addElement(), and FormulaCursor::buildElementsFromDom().

void Container::copy (   ) 
 

Copy the current selection to the clipboard.

Definition at line 369 of file kformulacontainer.cc.

References activeCursor(), FormulaCursor::copy(), Document::createDomDocument(), and document().

Referenced by cut().

void Container::cut (   ) 
 

Copy and remove.

Definition at line 381 of file kformulacontainer.cc.

References activeCursor(), copy(), and FormulaCursor::isSelection().

FormulaElement * Container::rootElement (   )  const [protected]
 

Returns:
the root of our element tree. That's the formula's structure.

Definition at line 106 of file kformulacontainer.cc.

Referenced by baseline(), boundingRect(), coveredRect(), createCursor(), draw(), isEmpty(), load(), moveTo(), print(), recalc(), save(), saveMathML(), setFontSize(), and texString().

FormulaElement * Container::createMainSequence (   )  [protected, virtual]
 

Factory method.

Definition at line 135 of file kformulacontainer.cc.

Referenced by initialize(), and load().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for lib Library Version 1.3.5.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Mar 11 11:47:55 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003