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/kspread/latex/export/cell.cc

133 lines
3.4 KiB

/*
** A program to convert the XML rendered by KSpread 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 "cell.h"
#include "table.h"
#include "column.h"
/*******************************************/
/* Constructor */
/*******************************************/
Cell::Cell(): Format()
{
setCol(0);
setRow(0);
setText("");
setTextDataType("none");
setResultDataType("none");
}
/*******************************************/
/* Destructor */
/*******************************************/
Cell::~Cell()
{
}
void Cell::analyse(const TQDomNode balise)
{
_row = getAttr(balise, "row").toLong();
_col = getAttr(balise, "column").toLong();
kdDebug(30522) << getRow() << "-" << getCol() << endl;
Format::analyse(getChild(balise, "format"));
analyseText(balise);
}
void Cell::analyseText(const TQDomNode balise)
{
setTextDataType( getAttr(getChild(balise, "text"), "dataType"));
setText(getData(balise, "text"));
kdDebug(30522) << "text(" << getTextDataType() << "): " << getText() << endl;
}
/*******************************************/
/* generate */
/*******************************************/
void Cell::generate(TQTextStream& out, Table* table)
{
/*if(getMulticol() > 0)
out << "\\multicol{" << getMulticol() << "}{";
else*/ if (getMultirow() > 0)
out << "\\multirow{" << getMultirow() << "}{";
kdDebug(30522) << "Generate cell..." << endl;
out << "\\multicolumn{1}{";
Format::generate(out, table->searchColumn(_col));
out << "}{" << endl;
if(getTextDataType() == "Str")
{
generateTextFormat(out, getText());
//out << getText();
}
out << "}" << endl;
/*if(getColSpan() > 0)
out << "}" << endl;
else*/ if (getMultirow() > 0)
out << "}" << endl;
/*Element* elt = 0;
kdDebug(30522) << "GENERATION OF A TABLE " << count() << endl;
out << endl << "\\begin{tabular}";
generateCellHeader(out);
out << endl;
indent();
int row= 0;
while(row <= getMaxRow())
{
generateTopLineBorder(out, row);
for(int col= 0; col <= getMaxCol(); col++)
{
writeIndent(out);
*/
/* Search the cell in the list */
/* elt = searchCell(row, col);
out << "\\multicolumn{1}{";
if(elt->hasLeftBorder())
out << "|";
out << "m{" << getCellSize(col) << "pt}";
if(elt->hasRightBorder())
out << "|";
out << "}{" << endl;
generateCell(out, row, col);
out << "}" << endl;
if(col < getMaxCol())
out << "&" << endl;
}
out << "\\\\" << endl;
writeIndent(out);
row = row + 1;
}
generateBottomLineBorder(out, row - 1);
out << "\\end{tabular}" << endl << endl;
desindent();*/
kdDebug(30522) << "END OF GENERATINO OF A CELL" << endl;
}