00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef MATRIXROWELEMENT_H
00024 #define MATRIXROWELEMENT_H
00025
00026 #include "BasicElement.h"
00027
00028
00029 #include "contextstyle.h"
00030
00031 namespace KFormula {
00032
00033 class MatrixEntryElement;
00034
00038 class MatrixRowElement : public BasicElement {
00039 friend class KFCNewLine;
00040
00041 public:
00043 MatrixRowElement( BasicElement* parent = 0 );
00044
00046 ~MatrixRowElement();
00047
00052 const QList<BasicElement*> childElements();
00053
00055 int positionOfEntry( BasicElement* entry ) const;
00056
00058 MatrixEntryElement* entryAt( int pos );
00059
00065 void moveLeft( FormulaCursor* cursor, BasicElement* from );
00066
00072 void moveRight( FormulaCursor* cursor, BasicElement* from );
00073
00079 void moveUp( FormulaCursor* cursor, BasicElement* from );
00080
00086 void moveDown( FormulaCursor* cursor, BasicElement* from );
00087
00089 void readMathML( const QDomElement& element );
00090
00092 void writeMathML( KoXmlWriter* writer, bool oasisFormat = false );
00093
00094
00095
00096
00097
00102 virtual void goInside(FormulaCursor* cursor);
00103
00104
00106 virtual void calcSizes( const ContextStyle& context,
00107 ContextStyle::TextStyle tstyle,
00108 ContextStyle::IndexStyle istyle,
00109 StyleAttributes& style );
00110
00116 virtual void draw( QPainter& painter, const LuPixelRect& r,
00117 const ContextStyle& context,
00118 ContextStyle::TextStyle tstyle,
00119 ContextStyle::IndexStyle istyle,
00120 StyleAttributes& style,
00121 const LuPixelPoint& parentOrigin );
00122
00123 virtual void insert(FormulaCursor*, QList<BasicElement*>&, Direction);
00124 virtual void remove(FormulaCursor*, QList<BasicElement*>&, Direction);
00125
00130 virtual void selectChild(FormulaCursor* cursor, BasicElement* child);
00131
00132
00133 protected:
00135 virtual QString getTagName() const { return "MULTILINE"; }
00136
00138 virtual void writeDom(QDomElement element);
00139
00141 virtual bool readAttributesFromDom(QDomElement element);
00142
00147 virtual bool readContentFromDom( QDomNode& node );
00148
00149 private:
00151 QList<MatrixEntryElement*> m_matrixEntryElements;
00152 };
00153
00154 }
00155
00156 #endif
00157