summaryrefslogtreecommitdiffstats
path: root/filters/kword/latex/export/layout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filters/kword/latex/export/layout.cpp')
-rw-r--r--filters/kword/latex/export/layout.cpp171
1 files changed, 171 insertions, 0 deletions
diff --git a/filters/kword/latex/export/layout.cpp b/filters/kword/latex/export/layout.cpp
new file mode 100644
index 000000000..74cee48ba
--- /dev/null
+++ b/filters/kword/latex/export/layout.cpp
@@ -0,0 +1,171 @@
+/*
+** A program to convert the XML rendered by KWord into LATEX.
+**
+** Copyright (C) 2000 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> /* for atoi function */
+
+#include <kdebug.h> /* for kdDebug() stream */
+
+#include "fileheader.h" /* for _header use */
+#include "tqlayout.h"
+#include "layout.h"
+
+/* Static Datas */
+TQString Layout::_last_name;
+EType Layout::_last_counter;
+
+/*******************************************/
+/* Constructor */
+/*******************************************/
+Layout::Layout()
+{
+ _last_name = "STANDARD";
+ _last_counter = TL_NONE;
+ _env = ENV_LEFT;
+ _counterType = TL_NONE;
+ _counterDepth = 0;
+ _counterBullet = 0;
+ _counterStart = 0;
+ _numberingType = -1;
+ _useHardBreakAfter = false;
+ _useHardBreak = false;
+ _keepLinesTogether = false;
+}
+
+/*******************************************/
+/* analyseLAyout */
+/*******************************************/
+void Layout::analyseLayout(const TQDomNode balise)
+{
+ /* Markup type : FORMAT id="1" pos="0" len="17">...</FORMAT> */
+
+ /* No parameters for this markup */
+ kdDebug(30522) << "ANALYSE OF THE BEGINING OF A LAYOUT" << endl;
+
+ /* Analyse children markups */
+ for(int index= 0; index < getNbChild(balise); index++)
+ {
+ if(getChildName(balise, index).compare("NAME")== 0)
+ {
+ kdDebug(30522) << "NAME : " << endl;
+ analyseName(getChild(balise, index));
+ }
+ else if(getChildName(balise, index).compare("FOLLOWING")== 0)
+ {
+ kdDebug(30522) << "FOLLOWING : " << endl;
+ analyseFollowing(getChild(balise, index));
+ }
+ else if(getChildName(balise, index).compare("FLOW")== 0)
+ {
+ kdDebug(30522) << "FLOW : " << endl;
+ analyseEnv(getChild(balise, index));
+ }
+ else if(getChildName(balise, index).compare("PAGEBREAKING")== 0)
+ {
+ kdDebug(30522) << "PAGEBREAKING : " << endl;
+ analyseBreakLine(getChild(balise, index));
+ }
+ else if(getChildName(balise, index).compare("COUNTER")== 0)
+ {
+ kdDebug(30522) << "COUNTER : " << endl;
+ analyseCounter(getChild(balise, index));
+ }
+ else if(getChildName(balise, index).compare("FORMAT")== 0)
+ {
+ kdDebug(30522) << "FORMAT : " << endl;
+ analyseFormat(getChild(balise, index));
+ }
+ }
+ kdDebug(30522) << "END OF THE BEGINING OF A LAYOUT" << endl;
+}
+
+void Layout::analyseName(const TQDomNode balise)
+{
+ /* <NAME value="times"> */
+ kdDebug(30522) << "PARAM" << endl;
+ setName(getAttr(balise, "value"));
+}
+
+/*******************************************/
+/* analyseFollowing */
+/*******************************************/
+/* Get info about folowing. Ununsefull. */
+/*******************************************/
+void Layout::analyseFollowing(const TQDomNode balise)
+{
+ /* <FOLLOWING name="times"> */
+ kdDebug(30522) << "PARAM" << endl;
+ setFollowing(getAttr(balise, "name"));
+}
+
+/*******************************************/
+/* analyseEnv */
+/*******************************************/
+/* Get informations about environment. */
+/*******************************************/
+void Layout::analyseEnv(const TQDomNode balise)
+{
+ /* <FLOW align="0"> */
+ // ERROR: Enter first in flow ????
+ kdDebug(30522) << "PARAM" << endl;
+ if(getAttr(balise,"align").compare("justify")== 0)
+ setEnv(ENV_JUSTIFY);
+ else if(getAttr(balise, "align").compare("left")== 0)
+ setEnv(ENV_LEFT);
+ else if(getAttr(balise, "align").compare("right")== 0)
+ setEnv(ENV_RIGHT);
+ else if(getAttr(balise, "align").compare("center")== 0)
+ setEnv(ENV_CENTER);
+}
+
+void Layout::analyseBreakLine(const TQDomNode balise)
+{
+ /* <NAME hardFrameBreakAfter="true"> */
+ kdDebug(30522) << "PARAM" << endl;
+ if(getAttr(balise, "linesTogether") != 0)
+ keepLinesTogether();
+ else if(getAttr(balise, "hardFrameBreak") != 0)
+ useHardBreak();
+ else if(getAttr(balise, "hardFrameBreakAfter") != 0)
+ useHardBreakAfter();
+}
+
+/*******************************************/
+/* analyseCounter */
+/*******************************************/
+/* Get all informations about counter. */
+/* If I use a counter, I must include a tex*/
+/* package. */
+/*******************************************/
+void Layout::analyseCounter(const TQDomNode balise)
+{
+ /* <COUNTER type="1"> */
+ kdDebug(30522) << "PARAM" << endl;
+ setCounterType(getAttr(balise, "type").toInt());
+ if(getCounterType() > TL_ARABIC && getCounterType() < TL_DISC_BULLET)
+ {
+ kdDebug(30522) << getCounterType() << endl;
+ FileHeader::instance()->useEnumerate();
+ }
+ setCounterDepth(getAttr(balise, "depth").toInt());
+ setCounterBullet(getAttr(balise, "bullet").toInt());
+ setCounterStart(getAttr(balise, "start").toInt());
+ setNumberingType(getAttr(balise, "numberingtype").toInt());
+}