filters

spreadsheet.cc

00001 /*
00002 ** A program to convert the XML rendered by KWord into LATEX.
00003 **
00004 ** Copyright (C) 2000, 2001, 2002, 2003 Robert JACOLIN
00005 **
00006 ** This library is free software; you can redistribute it and/or
00007 ** modify it under the terms of the GNU Library General Public
00008 ** License as published by the Free Software Foundation; either
00009 ** version 2 of the License, or (at your option) any later version.
00010 **
00011 ** This library is distributed in the hope that it will be useful,
00012 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 ** Library General Public License for more details.
00015 **
00016 ** To receive a copy of the GNU Library General Public License, write to the
00017 ** Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018  * Boston, MA 02110-1301, USA.
00019 **
00020 */
00021 
00022 #include <stdlib.h>     /* for atoi function    */
00023 
00024 #include <kdebug.h>
00025 
00026 #include "fileheader.h"
00027 //#include "paper.h"
00028 #include "spreadsheet.h"
00029 
00030 /*******************************************/
00031 /* Constructor                             */
00032 /*******************************************/
00033 Spreadsheet::Spreadsheet()
00034 {
00035 }
00036 
00037 /*******************************************/
00038 /* Destructor                              */
00039 /*******************************************/
00040 Spreadsheet::~Spreadsheet()
00041 {
00042     kdDebug(30522) << "Corps Destructor" << endl;
00043 }
00044 
00045 /*******************************************/
00046 /* Analyse                                 */
00047 /*******************************************/
00048 void Spreadsheet::analyse(const QDomNode balise)
00049 {
00050     kdDebug(30522) << getChildName(balise, 0) << endl;
00051     analyse_attr(balise);
00052     //_paper.analyse(getChild(balise, "paper"));
00053     _map.analyse(getChild(balise, "map"));
00054     //_locale.analyse(getChild(balise, "locale"));
00055     //_areaname.analyse(getChild(balise, "areaname"));
00056 
00057     kdDebug(30522) << "SPREADSHEET END" << endl;
00058 }
00059 
00060 /*******************************************/
00061 /* AnalysePixmaps                          */
00062 /*******************************************/
00063 void Spreadsheet::analyse_attr(const QDomNode balise)
00064 {
00065 
00066 }
00067 
00068 /*******************************************/
00069 /* Generate                                */
00070 /*******************************************/
00071 void Spreadsheet::generate(QTextStream &out, bool hasPreambule)
00072 {
00073     kdDebug(30522) << "DOC. GENERATION." << endl;
00074 
00075     if(!Config::instance()->isEmbeded())
00076         generatePreambule(out);
00077     kdDebug(30522) << "preambule : " << hasPreambule << endl;
00078 
00079     /* Body */
00080     if(hasPreambule)
00081     {
00082         out << "\\begin{document}" << endl;
00083         indent();
00084     }
00085 
00086     _map.generate(out);
00087 
00088     if(hasPreambule)
00089         out << "\\end{document}" << endl;
00090     desindent();
00091     if(getIndentation() != 0)
00092             kdError(30522) << "Error : indent != 0 at the end ! " << endl;
00093 }
00094 
00095 /*******************************************/
00096 /* GeneratePreambule                       */
00097 /*******************************************/
00098 void Spreadsheet::generatePreambule(QTextStream &out)
00099 {
00100     FileHeader::instance()->generate(out);
00101     /* For each header */
00102     //if(getFileHeader()->hasHeader())
00103     //{
00104     //  kdDebug(30522) << "header : " << _headers.count() << endl;
00105 
00106         /* default : no rule */
00107     //  out << "\\renewcommand{\\headrulewidth}{0pt}" << endl;
00108     //  for(header = _headers.first(); header != 0; header = _headers.next())
00109     //  {
00110     //      generateTypeHeader(out, header);
00111     //  }
00112     //}
00113 
00114     /* For each footer */
00115     /*if(getFileHeader()->hasFooter())
00116     {
00117         kdDebug(30522) << "footer : " << _footers.count() << endl;
00118 */
00119         /* default : no rule */
00120     /*  out << "\\renewcommand{\\footrulewidth}{0pt}" << endl;
00121         for(footer = _footers.first(); footer != 0; footer = _footers.next())
00122         {
00123             generateTypeFooter(out, footer);
00124         }
00125     }*/
00126     /* Specify what header/footer style to use */
00127     /*if(getFileHeader()->hasHeader() || getFileHeader()->hasFooter())
00128         out << "\\pagestyle{fancy}" << endl;
00129     else
00130     {
00131         out << "\\pagestyle{empty}" << endl;
00132     }*/
00133 }
00134 
00135 /*******************************************/
00136 /* GenerateTypeHeader                      */
00137 /*******************************************/
00138 void Spreadsheet::generateTypeHeader(QTextStream &out)
00139 {
00140     /*kdDebug(30522) << "generate header" << endl;
00141     if((_fileHeader->getHeadType() == TH_ALL ||
00142         _fileHeader->getHeadType() == TH_FIRST) && header->getInfo() == SI_EVEN)
00143     {
00144         out << "\\fancyhead[L]{}" << endl;
00145         out << "\\fancyhead[C]{";
00146         header->generate(out);
00147         out << "}" << endl;
00148         out << "\\fancyhead[R]{}" << endl;
00149     }
00150 
00151     switch(header->getInfo())
00152     {
00153         case SI_NONE:
00154         case SI_FIRST:
00155             break;
00156         case SI_ODD:
00157             out << "\\fancyhead[RO]{}" << endl;
00158             out << "\\fancyhead[CO]{";
00159             header->generate(out);
00160             out << "}" << endl;
00161             out << "\\fancyhead[LO]{}" << endl;
00162             break;
00163         case SI_EVEN:
00164             out << "\\fancyhead[RE]{}" << endl;
00165             out << "\\fancyhead[CE]{";
00166             header->generate(out);
00167             out << "}" << endl;
00168             out << "\\fancyhead[LE]{}" << endl;
00169             break;
00170     }
00171 
00172     if(header->getInfo() == SI_FIRST)
00173     {
00174         out << "\\fancyhead{";
00175         header->generate(out);
00176         out << "}" << endl;
00177         out << "\\thispagestyle{fancy}" << endl;
00178     }*/
00179 }
00180 
00181 /*******************************************/
00182 /* GenerateTypeFooter                      */
00183 /*******************************************/
00184 void Spreadsheet::generateTypeFooter(QTextStream &out)
00185 {
00186     /*if(_fileHeader->getFootType() == TH_ALL && footer->getInfo() == SI_EVEN)
00187     {
00188         out << "\\fancyfoot[L]{}" << endl;
00189         out << "\\fancyfoot[C]{";
00190         footer->generate(out);
00191         out << "}" << endl;
00192         out << "\\fancyfoot[R]{}" << endl;
00193     }
00194     else if(_fileHeader->getFootType() == TH_EVODD)
00195     {
00196         switch(footer->getInfo())
00197         {
00198             case SI_NONE:
00199             case SI_FIRST:
00200                 break;
00201             case SI_ODD:
00202                 out << "\\fancyfoot[CO]{";
00203                 footer->generate(out);
00204                 out << "}";
00205                 break;
00206             case SI_EVEN:
00207                 out << "\\fancyfoot[CE]{";
00208                 footer->generate(out);
00209                 out << "}";
00210                 break;
00211         }
00212     }
00213     else if(_fileHeader->getFootType() == TH_FIRST && footer->getInfo() == SI_FIRST)
00214     {
00215         out << "\\fanycfoot{";
00216         footer->generate(out);
00217         out << "}" << endl;
00218         out << "\\thispagestyle{fancy}" << endl;
00219     }*/
00220 }
00221 
KDE Home | KDE Accessibility Home | Description of Access Keys