diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2021-05-23 20:48:35 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2021-05-29 15:16:28 +0900 |
commit | 8b78a8791bc539bcffe7159f9d9714d577cb3d7d (patch) | |
tree | 1328291f966f19a22d7b13657d3f01a588eb1083 /lib/kformula/kformulamimesource.cpp | |
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 <michele.calgaro@yahoo.it>
Diffstat (limited to 'lib/kformula/kformulamimesource.cpp')
-rw-r--r-- | lib/kformula/kformulamimesource.cpp | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/lib/kformula/kformulamimesource.cpp b/lib/kformula/kformulamimesource.cpp new file mode 100644 index 00000000..4c7df0c7 --- /dev/null +++ b/lib/kformula/kformulamimesource.cpp @@ -0,0 +1,154 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Andrea Rizzi <rizzi@kde.org> + Ulrich Kuettler <ulrich.kuettler@mailbox.tu-dresden.de> + + 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 <iostream> + +#include <tqpopupmenu.h> +#include <tqbuffer.h> +#include <tqcolor.h> +#include <tqimage.h> +#include <tqpainter.h> +#include <tqpixmap.h> + +#include <kcommand.h> + +#include "contextstyle.h" +#include "formulacursor.h" +#include "formulaelement.h" +#include "kformuladocument.h" +#include "kformulamimesource.h" + +KFORMULA_NAMESPACE_BEGIN +using namespace std; + + +MimeSource::MimeSource(Document* doc, const TQDomDocument& formula) + : formulaDocument( doc ), document(formula) +{ + // The query for text/plain comes very often. So make sure + // it's fast. + + rootElement = new FormulaElement(this); + FormulaCursor cursor(rootElement); + + TQPtrList<BasicElement> list; + list.setAutoDelete(true); + if ( cursor.buildElementsFromDom( document.documentElement(), list ) ) { + cursor.insert(list); + latexString = rootElement->toLatex().utf8(); + if (latexString.size() > 0) { + latexString.truncate(latexString.size()-1); + } + } +} + +MimeSource::~MimeSource() +{ + delete rootElement; +} + +const char * MimeSource::selectionMimeType() +{ + return "application/x-kformula"; +} + +const char* MimeSource::format( int n ) const +{ + switch (n) { + case 0: + return selectionMimeType(); + case 1: + return "image/ppm"; + case 2: + return "text/plain"; + case 3: + return "text/x-tex"; + } + return NULL; +} + +bool MimeSource::provides( const char * format) const +{ +//This is not completed + if(TQString(format)==selectionMimeType()) + return true; + else if(TQString(format)=="image/ppm") + return true; + else if(TQString(format)=="text/plain") + return true; + else if(TQString(format)=="text/x-tex") + return true; + else + return false; +} + +TQByteArray MimeSource::encodedData ( const char *format ) const +{ + TQString fmt=format; //case sensitive? + + if ((fmt=="text/plain") || (fmt=="text/x-tex")) + return latexString; + + if (fmt==selectionMimeType()) { + TQByteArray d=document.toCString(); + d.truncate(d.size()-1); + return d; + } + + if (fmt=="image/ppm") { + + //cerr << "asking image" << endl; + ContextStyle& context = formulaDocument->getContextStyle( false ); + //context.setResolution(5, 5); + + rootElement->calcSizes(context); + TQRect rect(rootElement->getX(), rootElement->getY(), + rootElement->getWidth(), rootElement->getHeight()); + + TQPixmap pm( context.layoutUnitToPixelX( rootElement->getWidth() ), + context.layoutUnitToPixelY( rootElement->getHeight() ) ); + pm.fill(); + TQPainter paint(&pm); + rootElement->draw(paint, rect, context); + paint.end(); + + TQByteArray d; + TQBuffer buff(d); + buff.open(IO_WriteOnly); + TQImageIO io(&buff,"PPM"); + TQImage ima=pm.convertToImage(); + ima.detach(); + io.setImage(ima); + if(!io.write()) + return TQByteArray(); + + buff.close(); + return d; + } + + return TQByteArray(); +} + +const SymbolTable& MimeSource::getSymbolTable() const +{ + return formulaDocument->getContextStyle( false ).symbolTable(); +} + +KFORMULA_NAMESPACE_END |