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 ()
FormulaCursorcreateCursor ()
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)
FormulaCursoractiveCursor ()
const FormulaCursoractiveCursor () 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 Documentdocument () const
virtual const SymbolTablegetSymbolTable () 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

KoCommandHistorygetHistory () const
FormulaElementrootElement () const
virtual FormulaElementcreateMainSequence ()
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