You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/filters/kword/latex/export/variablezone.cc

141 lines
4.1 KiB

/* MEMO: to see the unicode table
* xset +fp /usr/X11R6/lib/X11/fonts/ucs/
* xfd -fn '-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1'
*/
/*
** A program to convert the XML rendered by KWord into LATEX.
**
** Copyright (C) 2002 - 2003 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 <kdebug.h> /* for kdDebug() stream */
#include "variablezone.h"
#include "para.h"
#include "document.h"
/*******************************************/
/* VariableZone */
/*******************************************/
VariableZone::VariableZone(Para* para): VariableFormat(para)
{
setPara(para);
setSize(para->getSize());
setWeight(para->getWeight());
setItalic(para->isItalic());
setUnderlined(para->getUnderlineType());
setStrikeout(para->isStrikeout());
}
/*******************************************/
/* VariableZone */
/*******************************************/
VariableZone::VariableZone(TQString text, Para* para): VariableFormat(para)
{
setTexte(text);
/*setPara(para);
setSize(para->getSize());
setWeight(para->getWeight());
setItalic(para->isItalic());
setUnderlined(para->getUnderlineType());
setStrikeout(para->isStrikeout());*/
}
/*******************************************/
/* ~VariableZone */
/*******************************************/
VariableZone::~VariableZone()
{
kdDebug(30522) << "Destruction of an area" << endl;
}
/*******************************************/
/* analyse */
/*******************************************/
/* Analyse a text format, get the text used*/
/* by this format. */
/*******************************************/
void VariableZone::analyse(const TQDomNode balise)
{
kdDebug(30522) << "FORMAT" << endl;
/* Get header information (size, position)
* Get infos. to format the text
*/
//if(balise != 0)
analyseFormat(balise);
/* Format the text */
setTexte(getTexte().mid(getPos(), getLength()));
kdDebug(30522) << getTexte().length() << endl;
kdDebug(30522) << getTexte().latin1() << endl;
kdDebug(30522) << "END FORMAT" << endl;
}
/*******************************************/
/* generate */
/*******************************************/
/* Generate the text formated (if needed). */
/*******************************************/
void VariableZone::generate(TQTextStream &out)
{
if(useFormat())
generate_format_begin(out);
/* Display the text */
kdDebug(30522) << "type : " << getType() << endl;
if((getType() == VAR_DATE) && !isFix())
out << "\\today" << endl;
else if(getType() == VAR_FOOTNOTE)
{
if(getNotetype() == "footnote")
out << "\\,\\footnote{";
else if(getNotetype() == "endnote")
out << "\\,\\endnote{";
/* Get the footnote and generate it. */
Element* footnote = getRoot()->searchFootnote(getFrameset());
if(footnote != NULL)
{
footnote->generate(out);
}
Config::instance()->writeIndent(out);
out << "}";
}
else if(getType() == VAR_NOTE)
{
out << "\\marginpar{\\scriptsize ";
if(Config::instance()->mustUseLatin1())
display(escapeLatin1(getNote()), out);
else if(Config::instance()->mustUseUnicode())
display(getNote(), out);
out << "}" << endl;
}
else
{
if(Config::instance()->mustUseLatin1())
display(escapeLatin1(getText()), out);
else if(Config::instance()->mustUseUnicode())
display(getText(), out);
}
if(useFormat())
generate_format_end(out);
}