00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PADDEDELEMENT_H
00021 #define PADDEDELEMENT_H
00022
00023 #include "SequenceElement.h"
00024
00025 namespace KFormula {
00026
00027 class PaddedElement : public SequenceElement {
00028 typedef SequenceElement inherited;
00029 enum SizeType { NoSize, RelativeSize, AbsoluteSize, PixelSize, WidthRelativeSize, HeightRelativeSize };
00030 public:
00031 PaddedElement( BasicElement* parent = 0 );
00032
00037 virtual void calcSizes( const ContextStyle& style,
00038 ContextStyle::TextStyle tstyle,
00039 ContextStyle::IndexStyle istyle,
00040 StyleAttributes& style );
00041
00042 protected:
00043 virtual bool readAttributesFromMathMLDom(const QDomElement& element);
00044
00045 private:
00046 virtual QString getElementName() const { return "mpadded"; }
00047 virtual void writeMathMLAttributes( QDomElement& element ) const ;
00048
00049 double readSizeAttribute( const QString& str, SizeType* st, bool* relative );
00050 double getSize( const QString& str, SizeType* st );
00051 double str2size( const QString& str, SizeType* st, SizeType type );
00052 void writeSizeAttribute( QDomElement element, const QString& str,
00053 SizeType st, bool relative, double s ) const ;
00054 luPixel calcSize( const ContextStyle& context, SizeType type,
00055 bool relative, double length, luPixel width,
00056 luPixel height, luPixel defvalue );
00057
00058 SizeType m_widthType;
00059 double m_width;
00060 SizeType m_lspaceType;
00061 double m_lspace;
00062 SizeType m_heightType;
00063 double m_height;
00064 SizeType m_depthType;
00065 double m_depth;
00066
00067 bool m_widthRelative;
00068 bool m_lspaceRelative;
00069 bool m_heightRelative;
00070 bool m_depthRelative;
00071 };
00072
00073 }
00074
00075 #endif // PADDEDELEMENT_H