summaryrefslogtreecommitdiffstats
path: root/filters/kword/latex/export/textformat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filters/kword/latex/export/textformat.cpp')
-rw-r--r--filters/kword/latex/export/textformat.cpp286
1 files changed, 286 insertions, 0 deletions
diff --git a/filters/kword/latex/export/textformat.cpp b/filters/kword/latex/export/textformat.cpp
new file mode 100644
index 000000000..02576354d
--- /dev/null
+++ b/filters/kword/latex/export/textformat.cpp
@@ -0,0 +1,286 @@
+/*
+** A program to convert the XML rendered by KWord into LATEX.
+**
+** Copyright (C) 2000, 2001, 2002 Robert JACOLIN
+**
+** 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.
+**
+** To receive a copy of the GNU Library General Public License, write to the
+** Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+**
+*/
+
+#include <stdlib.h>
+
+#include <kdebug.h>
+
+#include "fileheader.h" /* for the use of FileHeader::instance() (color and underlined) */
+#include "textformat.h"
+
+/*******************************************/
+/* getColorXXXX */
+/*******************************************/
+int TextFormat::getColorBlue () const
+{
+ if(_textcolor!= 0)
+ return _textcolor->blue();
+ else
+ return 0;
+}
+
+int TextFormat::getColorGreen() const
+{
+ if(_textcolor!= 0)
+ return _textcolor->green();
+ else
+ return 0;
+}
+
+int TextFormat::getColorRed () const
+{
+ if(_textcolor!= 0)
+ return _textcolor->red();
+ else
+ return 0;
+}
+
+/*******************************************/
+/* getBkColorXXX */
+/*******************************************/
+int TextFormat::getBkColorBlue () const
+{
+ if(_backcolor!= 0)
+ return _backcolor->blue();
+ else
+ return 0;
+}
+
+int TextFormat::getBkColorGreen() const
+{
+ if(_backcolor!= 0)
+ return _backcolor->green();
+ else
+ return 0;
+}
+
+int TextFormat::getBkColorRed () const
+{
+ if(_backcolor!= 0)
+ return _backcolor->red();
+ else
+ return 0;
+}
+
+/*******************************************/
+/* setColor */
+/*******************************************/
+void TextFormat::setColor (const int r, const int g, const int b)
+{
+ if(_textcolor == 0)
+ _textcolor = new TQColor(r, g, b);
+ else
+ _textcolor->setRgb(r, g, b);
+}
+
+/*******************************************/
+/* setBkColor */
+/*******************************************/
+void TextFormat::setBkColor (const int r, const int g, const int b)
+{
+ if(_backcolor == 0)
+ _backcolor = new TQColor(r, g, b);
+ else
+ _backcolor->setRgb(r, g, b);
+}
+
+/*******************************************/
+/* analyseTextFormat */
+/*******************************************/
+/* Get the set of info. about a text format*/
+/*******************************************/
+void TextFormat::analyseFormat(const TQDomNode balise)
+{
+ /* MARKUPS FORMAT id="1" pos="0" len="17">...</FORMAT> */
+
+ /* Parameters Analyse */
+ analyseParam(balise);
+ kdDebug(30522) << "ANALYSE A FORMAT" << endl;
+
+ /* Children Markups Analyse */
+ if(isChild(balise, "FONT"))
+ analyseFont(getChild(balise, "FONT"));
+ if(isChild(balise, "ITALIC"))
+ analyseItalic(getChild(balise, "ITALIC"));
+ if(isChild(balise, "UNDERLINE"))
+ analyseUnderlined(getChild(balise, "UNDERLINE"));
+ if(isChild(balise, "WEIGHT"))
+ analyseWeight(getChild(balise, "WEIGHT"));
+ if(isChild(balise, "VERTALIGN"))
+ analyseAlign(getChild(balise, "VERTALIGN"));
+ if(isChild(balise, "STRIKEOUT"))
+ analyseStrikeout(getChild(balise, "STRIKEOUT"));
+ if(isChild(balise, "COLOR"))
+ analyseColor(getChild(balise, "COLOR"));
+ if(isChild(balise, "SIZE"))
+ analyseSize(getChild(balise, "SIZE"));
+ if(isChild(balise, "TEXTBACKGROUNDCOLOR"))
+ analyseBackgroundColor(getChild(balise, "TEXTBACKGROUNDCOLOR"));
+
+ kdDebug(30522) << "END OF A FORMAT" << endl;
+}
+
+void TextFormat::analyseBackgroundColor(const TQDomNode balise)
+{
+ /* <TEXTBACKGROUNDCOLOR red="0" green="0" blue="0"/> */
+ int red = 0,
+ blue = 0,
+ green = 0;
+
+ red = getAttr(balise, "red").toInt();
+ green = getAttr(balise, "green").toInt();
+ blue = getAttr(balise, "blue").toInt();
+
+ if(!(red == 255 && green == 255 && blue == 255))
+ {
+ kdDebug(30522) << "bk color = " << red << "," << green << "," << blue << endl;
+ /* white color is default value */
+ setBkColor(red, green, blue);
+ FileHeader::instance()->useColor();
+ }
+}
+
+/*******************************************/
+/* analyseParam */
+/*******************************************/
+/* Get the zone where the format is applied*/
+/*******************************************/
+void TextFormat::analyseParam(const TQDomNode balise)
+{
+ /* <FORMAT id="1" pos="0" len="17"> */
+
+ //setId(getAttr(balise, "id").toInt());
+ //setPos(getAttr(balise, "pos").toInt());
+ //setLength(getAttr(balise, "len").toInt());
+ Format::analyse(balise);
+}
+
+/*******************************************/
+/* analyseFont */
+/*******************************************/
+/* Get the text font! */
+/*******************************************/
+void TextFormat::analyseFont(const TQDomNode balise)
+{
+ /* <FONT name="times"> */
+ setPolice(getAttr(balise, "name"));
+}
+
+/*******************************************/
+/* analyseItalic */
+/*******************************************/
+/* Verify if it's a italic text. */
+/*******************************************/
+void TextFormat::analyseItalic(const TQDomNode balise)
+{
+ /* <ITALIC value="1"> */
+ setItalic(getAttr(balise, "value").toInt());
+}
+
+/*******************************************/
+/* analyseUnderlined */
+/*******************************************/
+/* Verify if it's a underlined text. */
+/*******************************************/
+void TextFormat::analyseUnderlined(const TQDomNode balise)
+{
+ /* <UNDERLINE value="1"> */
+
+ setUnderlined(getAttr(balise, "value"));
+ if(isUnderlined())
+ FileHeader::instance()->useUnderline();
+ kdDebug(30522) << "Underlined ? " << isUnderlined() << endl;
+}
+
+/*******************************************/
+/* analyseStrikeout */
+/*******************************************/
+/* Verify if it's a strikeout text. */
+/*******************************************/
+void TextFormat::analyseStrikeout(const TQDomNode balise)
+{
+ /* <STRIKEOUT value="1" /> */
+ setStrikeout(getAttr(balise, "value").toInt());
+ if(isStrikeout())
+ FileHeader::instance()->useUnderline();
+ kdDebug(30522) << "Strikeout ? " << isUnderlined() << endl;
+}
+
+/*******************************************/
+/* analyseWeigth */
+/*******************************************/
+/* Get the text weigth. */
+/*******************************************/
+void TextFormat::analyseWeight(const TQDomNode balise)
+{
+ /* <WEIGHT value="75" /> */
+ setWeight(getAttr(balise, "value").toInt());
+ kdDebug(30522) << "Weight = " << getWeight() << endl;
+}
+
+/*******************************************/
+/* analyseAlign */
+/*******************************************/
+/* Get the text align. */
+/*******************************************/
+void TextFormat::analyseAlign(const TQDomNode balise)
+{
+ /* <VERTALIGN value="0"> */
+
+ setAlign(getAttr(balise, "value").toInt());
+}
+
+/*******************************************/
+/* analyseColor */
+/*******************************************/
+/* Get the text color. */
+/*******************************************/
+void TextFormat::analyseColor(const TQDomNode balise)
+{
+ /* <COLOR red="0" green="0" blue="0"/> */
+ int red = 0,
+ blue = 0,
+ green = 0;
+
+ red = getAttr(balise, "red").toInt();
+ green = getAttr(balise, "green").toInt();
+ blue = getAttr(balise, "blue").toInt();
+
+ if(!(red == 0 && green == 0 && blue == 0))
+ {
+ /* black color is default value */
+ kdDebug(30522) << "color = " << red << "," << green << "," << blue << endl;
+ setColor(red, green, blue);
+ FileHeader::instance()->useColor();
+ }
+}
+
+/*******************************************/
+/* analyseSize */
+/*******************************************/
+/* Get the text size. */
+/*******************************************/
+void TextFormat::analyseSize(const TQDomNode balise)
+{
+ /* <SIZE value="11"> */
+ setSize(getAttr(balise, "value").toInt());
+ kdDebug(30522) << "font size : " << getSize() << endl;
+}