diff options
author | Michele Calgaro <[email protected]> | 2021-05-23 20:48:35 +0900 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2021-05-29 15:16:28 +0900 |
commit | 8b78a8791bc539bcffe7159f9d9714d577cb3d7d (patch) | |
tree | 1328291f966f19a22d7b13657d3f01a588eb1083 /lib/kformula/spaceelement.cc | |
parent | 95834e2bdc5e01ae1bd21ac0dfa4fa1d2417fae9 (diff) | |
download | koffice-8b78a8791bc539bcffe7159f9d9714d577cb3d7d.tar.gz koffice-8b78a8791bc539bcffe7159f9d9714d577cb3d7d.zip |
Renaming of files in preparation for code style tools.
Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'lib/kformula/spaceelement.cc')
-rw-r--r-- | lib/kformula/spaceelement.cc | 431 |
1 files changed, 0 insertions, 431 deletions
diff --git a/lib/kformula/spaceelement.cc b/lib/kformula/spaceelement.cc deleted file mode 100644 index 7d372360..00000000 --- a/lib/kformula/spaceelement.cc +++ /dev/null @@ -1,431 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Andrea Rizzi <[email protected]> - Ulrich Kuettler <[email protected]> - Copyright (C) 2006 Alfredo Beaumont Sainz <[email protected]> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. -*/ - -#include <tqfontmetrics.h> -#include <tqpainter.h> - -#include <kdebug.h> -#include <kprinter.h> - -#include "contextstyle.h" -#include "elementvisitor.h" -#include "spaceelement.h" - - -KFORMULA_NAMESPACE_BEGIN - - -SpaceElement::SpaceElement( SpaceWidth space, bool tab, BasicElement* parent ) - : BasicElement( parent ), - m_tab( tab ), - m_widthType( NoSize ), - m_heightType( NoSize ), - m_depthType( NoSize ), - m_lineBreak( NoBreakType ) -{ - // Backwards compatibility with KFO format - switch ( space ) { - case NEGTHIN: - m_widthType = NegativeThinMathSpace; - break; - case THIN: - m_widthType = ThinMathSpace; - break; - case MEDIUM: - m_widthType = MediumMathSpace; - break; - case THICK: - m_widthType = ThickMathSpace; - break; - case QUAD: - m_widthType = VeryVeryThickMathSpace; - break; - } -} - - -SpaceElement::SpaceElement( const SpaceElement& other ) - : BasicElement( other ), - m_widthType( other.m_widthType ), - m_width( other.m_width ), - m_heightType( other.m_heightType ), - m_height( other.m_height ), - m_depthType( other.m_depthType ), - m_depth( other.m_depth ), - m_lineBreak( other.m_lineBreak ) -{ -} - - -bool SpaceElement::accept( ElementVisitor* visitor ) -{ - return visitor->visit( this ); -} - - -void SpaceElement::calcSizes( const ContextStyle& context, - ContextStyle::TextStyle tstyle, - ContextStyle::IndexStyle /*istyle*/, - StyleAttributes& style ) -{ - double factor = style.sizeFactor(); - luPt mySize = context.getAdjustedSize( tstyle, factor ); - TQFont font = context.getDefaultFont(); - font.setPointSize( mySize ); - - TQFontMetrics fm( font ); - TQChar w = 'M'; - LuPixelRect hbound = fm.boundingRect( w ); - TQChar h = 'x'; - LuPixelRect vbound = fm.boundingRect( h ); - - double width = style.getSpace( m_widthType, m_width ); - if ( m_widthType == AbsoluteSize ) { - width = m_width / context.layoutUnitPtToPt( context.getBaseSize() ); - } - else if ( m_widthType == PixelSize ) { - width = context.pixelYToPt( m_width ) / context.layoutUnitPtToPt( context.getBaseSize() ); - } - double height = style.getSpace( m_heightType, m_height ); - if ( m_heightType == AbsoluteSize ) { - height = m_height / context.layoutUnitPtToPt( context.getBaseSize() ); - } - else if ( m_heightType == PixelSize ) { - height = context.pixelYToPt( m_height ) / context.layoutUnitPtToPt( context.getBaseSize() ); - } - double depth = style.getSpace( m_depthType, m_depth ); - if ( m_depthType == AbsoluteSize ) { - depth = m_depth / context.layoutUnitPtToPt( context.getBaseSize() ); - } - else if ( m_depthType == PixelSize ) { - depth = context.pixelYToPt( m_depth ) / context.layoutUnitPtToPt( context.getBaseSize() ); - } - - setWidth( hbound.width() * width ); - setHeight( vbound.height() * height + vbound.height() * depth ); - setBaseline( vbound.height() * height ); - - if ( m_tab ) { - getParent()->registerTab( this ); - } -} - -void SpaceElement::draw( TQPainter& painter, const LuPixelRect& /*r*/, - const ContextStyle& context, - ContextStyle::TextStyle /*tstyle*/, - ContextStyle::IndexStyle /*istyle*/, - StyleAttributes& /*style*/, - const LuPixelPoint& parentOrigin ) -{ - LuPixelPoint myPos(parentOrigin.x()+getX(), parentOrigin.y()+getY()); - // there is such a thing as negative space! - //if ( !LuPixelRect( myPos.x(), myPos.y(), getWidth(), getHeight() ).intersects( r ) ) - // return; - - if ( context.edit() ) { - painter.setPen( context.getEmptyColor() ); - painter.drawLine( context.layoutUnitToPixelX( myPos.x() ), - context.layoutUnitToPixelY( myPos.y()+getHeight() ), - context.layoutUnitToPixelX( myPos.x()+getWidth()-1 ), - context.layoutUnitToPixelY( myPos.y()+getHeight() ) ); - painter.drawLine( context.layoutUnitToPixelX( myPos.x() ), - context.layoutUnitToPixelY( myPos.y()+getHeight() ), - context.layoutUnitToPixelX( myPos.x() ), - context.layoutUnitToPixelY( myPos.y()+getHeight()-getHeight()/5 ) ); - painter.drawLine( context.layoutUnitToPixelX( myPos.x()+getWidth()-1 ), - context.layoutUnitToPixelY( myPos.y()+getHeight() ), - context.layoutUnitToPixelX( myPos.x()+getWidth()-1 ), - context.layoutUnitToPixelY( myPos.y()+getHeight()-getHeight()/5 ) ); - } -} - - -void SpaceElement::writeDom(TQDomElement element) -{ - BasicElement::writeDom(element); - switch ( m_widthType ) { - case NegativeVeryVeryThinMathSpace: - case NegativeVeryThinMathSpace: - case NegativeThinMathSpace: - case NegativeMediumMathSpace: - case NegativeThickMathSpace: - case NegativeVeryThickMathSpace: - case NegativeVeryVeryThickMathSpace: - element.setAttribute( "WIDTH", "negthin" ); - break; - case VeryVeryThinMathSpace: - case VeryThinMathSpace: - case ThinMathSpace: - element.setAttribute( "WIDTH", "thin" ); - break; - case MediumMathSpace: - element.setAttribute( "WIDTH", "medium" ); - break; - case ThickMathSpace: - element.setAttribute( "WIDTH", "thick" ); - break; - case VeryThickMathSpace: - case VeryVeryThickMathSpace: - element.setAttribute( "WIDTH", "quad" ); - break; - case AbsoluteSize: - case RelativeSize: - case PixelSize: - if ( m_width < 0 ) { - element.setAttribute( "WIDTH", "negthin" ); - } - else { - element.setAttribute( "WIDTH", "thin" ); - } - default: - break; - } - if ( m_tab ) { - element.setAttribute( "TAB", "true" ); - } -} - -bool SpaceElement::readAttributesFromDom( TQDomElement element ) -{ - if ( !BasicElement::readAttributesFromDom( element ) ) { - return false; - } - TQString widthStr = element.attribute( "WIDTH" ); - if( !widthStr.isNull() ) { - if ( widthStr.lower() == "quad" ) { - m_widthType = VeryVeryThickMathSpace; - } - else if ( widthStr.lower() == "thick" ) { - m_widthType = ThickMathSpace; - } - else if ( widthStr.lower() == "medium" ) { - m_widthType = MediumMathSpace; - } - else if ( widthStr.lower() == "negthin" ) { - m_widthType = NegativeThinMathSpace; - } - else { - m_widthType = ThinMathSpace; - } - } - else { - return false; - } - TQString tabStr = element.attribute( "TAB" ); - m_tab = !tabStr.isNull(); - return true; -} - -bool SpaceElement::readContentFromDom(TQDomNode& node) -{ - return BasicElement::readContentFromDom( node ); -} - -bool SpaceElement::readAttributesFromMathMLDom(const TQDomElement& element) -{ - if ( ! BasicElement::readAttributesFromMathMLDom( element ) ) { - return false; - } - - TQString widthStr = element.attribute( "width" ).stripWhiteSpace().lower(); - if ( ! widthStr.isNull() ) { - m_width = getSize( widthStr, &m_widthType ); - if ( m_widthType == NoSize ) { - m_widthType = getSpace( widthStr ); - } - } - TQString heightStr = element.attribute( "height" ).stripWhiteSpace().lower(); - if ( ! heightStr.isNull() ) { - m_height = getSize( heightStr, &m_heightType ); - } - TQString depthStr = element.attribute( "depth" ).stripWhiteSpace().lower(); - if ( ! depthStr.isNull() ) { - m_depth = getSize( depthStr, &m_depthType ); - } - TQString linebreakStr = element.attribute( "linebreak" ).stripWhiteSpace().lower(); - if ( ! linebreakStr.isNull() ) { - if ( linebreakStr == "auto" ) { - m_lineBreak = AutoBreak; - } - else if ( linebreakStr == "newline" ) { - m_lineBreak = NewLineBreak; - } - else if ( linebreakStr == "indentingnewline" ) { - m_lineBreak = IndentingNewLineBreak; - } - else if ( linebreakStr == "nobreak" ) { - m_lineBreak = NoBreak; - } - else if ( linebreakStr == "goodbreak" ) { - m_lineBreak = GoodBreak; - } - else if ( linebreakStr == "badbreak" ) { - m_lineBreak = BadBreak; - } - } - return true; -} - -void SpaceElement::writeMathMLAttributes( TQDomElement& element ) const -{ - switch ( m_widthType ) { - case AbsoluteSize: - element.setAttribute( "width", TQString( "%1pt" ).arg( m_width ) ); - break; - case RelativeSize: - element.setAttribute( "width", TQString( "%1%" ).arg( m_width * 100.0 ) ); - break; - case PixelSize: - element.setAttribute( "width", TQString( "%1px" ).arg( m_width ) ); - break; - case NegativeVeryVeryThinMathSpace: - element.setAttribute( "width", "negativeveryverythinmathspace" ); - break; - case NegativeVeryThinMathSpace: - element.setAttribute( "width", "negativeverythinmathspace" ); - break; - case NegativeThinMathSpace: - element.setAttribute( "width", "negativethinmathspace" ); - break; - case NegativeMediumMathSpace: - element.setAttribute( "width", "negativemediummathspace" ); - break; - case NegativeThickMathSpace: - element.setAttribute( "width", "negativethickmathspace" ); - break; - case NegativeVeryThickMathSpace: - element.setAttribute( "width", "negativeverythickmathspace" ); - break; - case NegativeVeryVeryThickMathSpace: - element.setAttribute( "width", "negativeveryverythickmathspace" ); - break; - case VeryVeryThinMathSpace: - element.setAttribute( "width", "veryverythinmathspace" ); - break; - case VeryThinMathSpace: - element.setAttribute( "width", "verythinmathspace" ); - break; - case ThinMathSpace: - element.setAttribute( "width", "thinmathspace" ); - break; - case MediumMathSpace: - element.setAttribute( "width", "mediummathspace" ); - break; - case ThickMathSpace: - element.setAttribute( "width", "thickmathspace" ); - break; - case VeryThickMathSpace: - element.setAttribute( "width", "verythickmathspace" ); - break; - case VeryVeryThickMathSpace: - element.setAttribute( "width", "veryverythickmathspace" ); - break; - default: - break; - } - switch ( m_heightType ) { - case AbsoluteSize: - element.setAttribute( "height", TQString( "%1pt" ).arg( m_height ) ); - break; - case RelativeSize: - element.setAttribute( "height", TQString( "%1%" ).arg( m_height * 100.0 ) ); - break; - case PixelSize: - element.setAttribute( "height", TQString( "%1px" ).arg( m_height ) ); - break; - default: - break; - } - switch ( m_depthType ) { - case AbsoluteSize: - element.setAttribute( "depth", TQString( "%1pt" ).arg( m_depth ) ); - break; - case RelativeSize: - element.setAttribute( "depth", TQString( "%1%" ).arg( m_depth * 100.0 ) ); - break; - case PixelSize: - element.setAttribute( "depth", TQString( "%1px" ).arg( m_depth ) ); - break; - default: - break; - } - switch ( m_lineBreak ) { - case AutoBreak: - element.setAttribute( "linebreak", "auto" ); - break; - case NewLineBreak: - element.setAttribute( "linebreak", "newline" ); - break; - case IndentingNewLineBreak: - element.setAttribute( "linebreak", "indentingnewline" ); - break; - case NoBreak: - element.setAttribute( "linebreak", "nobreak" ); - break; - case GoodBreak: - element.setAttribute( "linebreak", "goodbreak" ); - break; - case BadBreak: - element.setAttribute( "linebreak", "badbreak" ); - break; - default: - break; - } -} - -TQString SpaceElement::toLatex() -{ - switch ( m_widthType ) { - case NegativeVeryVeryThinMathSpace: - case NegativeVeryThinMathSpace: - case NegativeThinMathSpace: - case NegativeMediumMathSpace: - case NegativeThickMathSpace: - case NegativeVeryThickMathSpace: - case NegativeVeryVeryThickMathSpace: - return "\\!"; - case VeryVeryThinMathSpace: - case VeryThinMathSpace: - case ThinMathSpace: - return "\\,"; - case MediumMathSpace: - return "\\>"; - case ThickMathSpace: - return "\\;"; - case VeryThickMathSpace: - case VeryVeryThickMathSpace: - return "\\quad "; - case AbsoluteSize: - case RelativeSize: - case PixelSize: - if ( m_width < 0 ) { - return "\\!"; - } - else { - return "\\,"; - } - default: - break; - } - return ""; -} - -KFORMULA_NAMESPACE_END |