fractionelement.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef FRACTIONELEMENT_H
00022 #define FRACTIONELEMENT_H
00023
00024 #include "basicelement.h"
00025
00026 KFORMULA_NAMESPACE_BEGIN
00027 class SequenceElement;
00028
00029
00033 class FractionElement : public BasicElement {
00034 FractionElement& operator=( const FractionElement& ) { return *this; }
00035 public:
00036
00037 enum { numeratorPos, denominatorPos };
00038
00039 FractionElement(BasicElement* parent = 0);
00040 ~FractionElement();
00041
00042 FractionElement( const FractionElement& );
00043
00044 virtual FractionElement* clone() {
00045 return new FractionElement( *this );
00046 }
00047
00048 virtual bool accept( ElementVisitor* visitor );
00049
00054 virtual TokenType getTokenType() const { return INNER; }
00055
00060 virtual void entered( SequenceElement* child );
00061
00068 virtual BasicElement* goToPos( FormulaCursor*, bool& handled,
00069 const LuPixelPoint& point, const LuPixelPoint& parentOrigin );
00070
00075 virtual void calcSizes(const ContextStyle& style, ContextStyle::TextStyle tstyle, ContextStyle::IndexStyle istyle);
00076
00082 virtual void draw( QPainter& painter, const LuPixelRect& r,
00083 const ContextStyle& style,
00084 ContextStyle::TextStyle tstyle,
00085 ContextStyle::IndexStyle istyle,
00086 const LuPixelPoint& parentOrigin );
00087
00091 virtual void dispatchFontCommand( FontCommand* cmd );
00092
00098 virtual void moveLeft(FormulaCursor* cursor, BasicElement* from);
00099
00105 virtual void moveRight(FormulaCursor* cursor, BasicElement* from);
00106
00112 virtual void moveUp(FormulaCursor* cursor, BasicElement* from);
00113
00119 virtual void moveDown(FormulaCursor* cursor, BasicElement* from);
00120
00124 virtual void insert(FormulaCursor*, QPtrList<BasicElement>&, Direction);
00125
00135 virtual void remove(FormulaCursor*, QPtrList<BasicElement>&, Direction);
00136
00137
00138
00139
00140
00141
00142 virtual SequenceElement* getMainChild();
00143
00144 SequenceElement* getNumerator() { return numerator; }
00145 SequenceElement* getDenominator() { return denominator; }
00146
00152 virtual bool isSenseless();
00153
00158 virtual void selectChild(FormulaCursor* cursor, BasicElement* child);
00159
00164
00165
00169 void showLine(bool line) { withLine = line; }
00170
00175 virtual QString toLatex();
00176
00177 virtual QString formulaString();
00178
00179 virtual void writeMathML( QDomDocument& doc, QDomNode parent, bool oasisFormat = false );
00180
00181 protected:
00182
00183
00184
00188 virtual QString getTagName() const { return "FRACTION"; }
00189
00193 virtual void writeDom(QDomElement element);
00194
00199 virtual bool readAttributesFromDom(QDomElement element);
00200
00206 virtual bool readContentFromDom(QDomNode& node);
00207
00208 private:
00209
00210 SequenceElement* numerator;
00211 SequenceElement* denominator;
00212
00213 bool withLine;
00214 };
00215
00216 KFORMULA_NAMESPACE_END
00217
00218 #endif // FRACTIONELEMENT_H
This file is part of the documentation for lib Library Version 1.4.2.