diff options
Diffstat (limited to 'filters/kword/latex/export/layout.cpp')
-rw-r--r-- | filters/kword/latex/export/layout.cpp | 171 |
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()); +} |