LCOV - code coverage report
Current view: top level - sc/source/filter/orcus - interface.cxx (source / functions) Hit Total Coverage
Test: commit e02a6cb2c3e2b23b203b422e4e0680877f232636 Lines: 0 294 0.0 %
Date: 2014-04-14 Functions: 0 87 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  */
       9             : 
      10             : #include "orcusinterface.hxx"
      11             : 
      12             : #include "document.hxx"
      13             : #include "formulacell.hxx"
      14             : #include "rangenam.hxx"
      15             : #include "tokenarray.hxx"
      16             : #include "globalnames.hxx"
      17             : #include "docoptio.hxx"
      18             : #include "globstr.hrc"
      19             : #include "compiler.hxx"
      20             : 
      21             : #include "formula/token.hxx"
      22             : #include "tools/datetime.hxx"
      23             : 
      24             : #include <com/sun/star/task/XStatusIndicator.hpp>
      25             : 
      26             : using namespace com::sun::star;
      27             : 
      28             : namespace os = orcus::spreadsheet;
      29             : 
      30           0 : ScOrcusGlobalSettings::ScOrcusGlobalSettings(ScDocumentImport& rDoc) : mrDoc(rDoc) {}
      31             : 
      32           0 : void ScOrcusGlobalSettings::set_origin_date(int year, int month, int day)
      33             : {
      34           0 :     mrDoc.setOriginDate(year, month, day);
      35           0 : }
      36             : 
      37           0 : ScOrcusFactory::StringCellCache::StringCellCache(const ScAddress& rPos, size_t nIndex) :
      38           0 :     maPos(rPos), mnIndex(nIndex) {}
      39             : 
      40           0 : ScOrcusFactory::ScOrcusFactory(ScDocument& rDoc) :
      41             :     maDoc(rDoc),
      42             :     maGlobalSettings(maDoc),
      43             :     maSharedStrings(*this),
      44           0 :     mnProgress(0) {}
      45             : 
      46           0 : orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::append_sheet(const char* sheet_name, size_t sheet_name_length)
      47             : {
      48           0 :     OUString aTabName(sheet_name, sheet_name_length, RTL_TEXTENCODING_UTF8);
      49           0 :     if (!maDoc.appendSheet(aTabName))
      50           0 :         return NULL;
      51             : 
      52           0 :     SCTAB nTab = maDoc.getSheetCount() - 1;
      53           0 :     maSheets.push_back(new ScOrcusSheet(maDoc, nTab, *this));
      54           0 :     return &maSheets.back();
      55             : }
      56             : 
      57             : class FindSheetByIndex : std::unary_function<ScOrcusSheet, bool>
      58             : {
      59             :     SCTAB mnTab;
      60             : public:
      61           0 :     FindSheetByIndex(SCTAB nTab) : mnTab(nTab) {}
      62           0 :     bool operator() (const ScOrcusSheet& rSheet) const
      63             :     {
      64           0 :         return rSheet.getIndex() == mnTab;
      65             :     }
      66             : };
      67             : 
      68           0 : orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::get_sheet(const char* sheet_name, size_t sheet_name_length)
      69             : {
      70           0 :     OUString aTabName(sheet_name, sheet_name_length, RTL_TEXTENCODING_UTF8);
      71           0 :     SCTAB nTab = maDoc.getSheetIndex(aTabName);
      72           0 :     if (nTab < 0)
      73             :         // Sheet by that name not found.
      74           0 :         return NULL;
      75             : 
      76             :     // See if we already have an orcus sheet instance by that index.
      77             :     boost::ptr_vector<ScOrcusSheet>::iterator it =
      78           0 :         std::find_if(maSheets.begin(), maSheets.end(), FindSheetByIndex(nTab));
      79             : 
      80           0 :     if (it != maSheets.end())
      81             :         // We already have one. Return it.
      82           0 :         return &(*it);
      83             : 
      84             :     // Create a new orcus sheet instance for this.
      85           0 :     maSheets.push_back(new ScOrcusSheet(maDoc, nTab, *this));
      86           0 :     return &maSheets.back();
      87             : }
      88             : 
      89           0 : orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::get_sheet(orcus::spreadsheet::sheet_t sheet_index)
      90             : {
      91           0 :     SCTAB nTab = static_cast<SCTAB>(sheet_index);
      92             :     // See if we already have an orcus sheet instance by that index.
      93             :     boost::ptr_vector<ScOrcusSheet>::iterator it =
      94           0 :         std::find_if(maSheets.begin(), maSheets.end(), FindSheetByIndex(nTab));
      95             : 
      96           0 :     if (it != maSheets.end())
      97             :         // We already have one. Return it.
      98           0 :         return &(*it);
      99             : 
     100             :     // Create a new orcus sheet instance for this.
     101           0 :     maSheets.push_back(new ScOrcusSheet(maDoc, nTab, *this));
     102           0 :     return &maSheets.back();
     103             : 
     104             : }
     105             : 
     106           0 : orcus::spreadsheet::iface::import_global_settings* ScOrcusFactory::get_global_settings()
     107             : {
     108           0 :     return &maGlobalSettings;
     109             : }
     110             : 
     111           0 : orcus::spreadsheet::iface::import_shared_strings* ScOrcusFactory::get_shared_strings()
     112             : {
     113           0 :     return &maSharedStrings;
     114             : }
     115             : 
     116           0 : orcus::spreadsheet::iface::import_styles* ScOrcusFactory::get_styles()
     117             : {
     118           0 :     return &maStyles;
     119             : }
     120             : 
     121           0 : void ScOrcusFactory::finalize()
     122             : {
     123           0 :     int nCellCount = 0;
     124           0 :     StringCellCaches::const_iterator it = maStringCells.begin(), itEnd = maStringCells.end();
     125           0 :     for (; it != itEnd; ++it)
     126             :     {
     127           0 :         if (it->mnIndex >= maStrings.size())
     128             :             // String index out-of-bound!  Something is up.
     129           0 :             continue;
     130             : 
     131           0 :         maDoc.setStringCell(it->maPos, maStrings[it->mnIndex]);
     132           0 :         ++nCellCount;
     133           0 :         if (nCellCount == 100000)
     134             :         {
     135           0 :             incrementProgress();
     136           0 :             nCellCount = 0;
     137             :         }
     138             :     }
     139             : 
     140           0 :     if (mxStatusIndicator.is())
     141           0 :         mxStatusIndicator->end();
     142             : 
     143           0 :     maDoc.finalize();
     144           0 : }
     145             : 
     146           0 : size_t ScOrcusFactory::appendString(const OUString& rStr)
     147             : {
     148           0 :     size_t nPos = maStrings.size();
     149           0 :     maStrings.push_back(rStr);
     150           0 :     maStringHash.insert(StringHashType::value_type(rStr, nPos));
     151             : 
     152           0 :     return nPos;
     153             : }
     154             : 
     155           0 : size_t ScOrcusFactory::addString(const OUString& rStr)
     156             : {
     157             :     // Add only if the string is not yet present in the string pool.
     158           0 :     StringHashType::iterator it = maStringHash.find(rStr);
     159           0 :     if (it != maStringHash.end())
     160           0 :         return it->second;
     161             : 
     162           0 :     return appendString(rStr);
     163             : }
     164             : 
     165           0 : void ScOrcusFactory::pushStringCell(const ScAddress& rPos, size_t nStrIndex)
     166             : {
     167           0 :     maStringCells.push_back(StringCellCache(rPos, nStrIndex));
     168           0 : }
     169             : 
     170           0 : void ScOrcusFactory::incrementProgress()
     171             : {
     172           0 :     if (!mxStatusIndicator.is())
     173             :         // Status indicator object not set.
     174           0 :         return;
     175             : 
     176             :     // For now, we'll hard-code the progress range to be 100, and stops at 99
     177             :     // in all cases.
     178             : 
     179           0 :     if (!mnProgress)
     180           0 :         mxStatusIndicator->start(ScGlobal::GetRscString(STR_LOAD_DOC), 100);
     181             : 
     182           0 :     if (mnProgress == 99)
     183           0 :         return;
     184             : 
     185           0 :     ++mnProgress;
     186           0 :     mxStatusIndicator->setValue(mnProgress);
     187             : }
     188             : 
     189           0 : void ScOrcusFactory::setStatusIndicator(const uno::Reference<task::XStatusIndicator>& rIndicator)
     190             : {
     191           0 :     mxStatusIndicator = rIndicator;
     192           0 : }
     193             : 
     194           0 : ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& rFactory) :
     195           0 :     mrDoc(rDoc), mnTab(nTab), mrFactory(rFactory), mnCellCount(0) {}
     196             : 
     197           0 : void ScOrcusSheet::cellInserted()
     198             : {
     199           0 :     ++mnCellCount;
     200           0 :     if (mnCellCount == 100000)
     201             :     {
     202           0 :         mrFactory.incrementProgress();
     203           0 :         mnCellCount = 0;
     204             :     }
     205           0 : }
     206             : 
     207           0 : void ScOrcusSheet::set_auto(os::row_t row, os::col_t col, const char* p, size_t n)
     208             : {
     209           0 :     OUString aVal(p, n, RTL_TEXTENCODING_UTF8);
     210           0 :     mrDoc.setAutoInput(ScAddress(col, row, mnTab), aVal);
     211           0 :     cellInserted();
     212           0 : }
     213             : 
     214           0 : void ScOrcusSheet::set_string(os::row_t row, os::col_t col, size_t sindex)
     215             : {
     216             :     // We need to defer string cells since the shared string pool is not yet
     217             :     // populated at the time this method is called.  Orcus imports string
     218             :     // table after the cells get imported.  We won't need to do this once we
     219             :     // implement true shared strings in Calc core.
     220             : 
     221           0 :     mrFactory.pushStringCell(ScAddress(col, row, mnTab), sindex);
     222           0 :     cellInserted();
     223           0 : }
     224             : 
     225           0 : void ScOrcusSheet::set_value(os::row_t row, os::col_t col, double value)
     226             : {
     227           0 :     mrDoc.setNumericCell(ScAddress(col, row, mnTab), value);
     228           0 :     cellInserted();
     229           0 : }
     230             : 
     231           0 : void ScOrcusSheet::set_bool(os::row_t row, os::col_t col, bool value)
     232             : {
     233           0 :     mrDoc.setNumericCell(ScAddress(col, row, mnTab), value ? 1.0 : 0.0);
     234           0 :     cellInserted();
     235           0 : }
     236             : 
     237           0 : void ScOrcusSheet::set_date_time(
     238             :     os::row_t row, os::col_t col, int year, int month, int day, int hour, int minute, double second)
     239             : {
     240           0 :     SvNumberFormatter* pFormatter = mrDoc.getDoc().GetFormatTable();
     241             : 
     242           0 :     Date aDate(day, month, year);
     243           0 :     sal_uInt32 nSec = floor(second);
     244           0 :     sal_uInt32 nNanoSec = (second - nSec) * ::Time::nanoSecPerSec;
     245           0 :     Time aTime(hour, minute, nSec, nNanoSec);
     246           0 :     Date aNullDate(*pFormatter->GetNullDate());
     247           0 :     long nDateDiff = aDate - aNullDate;
     248             : 
     249             :     double fTime =
     250           0 :         static_cast<double>(aTime.GetNanoSec()) / ::Time::nanoSecPerSec +
     251           0 :         aTime.GetSec() +
     252           0 :         aTime.GetMin() * ::Time::secondPerMinute +
     253           0 :         aTime.GetHour() * ::Time::secondPerHour;
     254             : 
     255           0 :     fTime /= DATE_TIME_FACTOR;
     256             : 
     257           0 :     mrDoc.setNumericCell(ScAddress(col, row, mnTab), nDateDiff + fTime);
     258           0 :     cellInserted();
     259           0 : }
     260             : 
     261           0 : void ScOrcusSheet::set_format(os::row_t /*row*/, os::col_t /*col*/, size_t /*xf_index*/)
     262             : {
     263           0 : }
     264             : 
     265             : namespace {
     266             : 
     267           0 : formula::FormulaGrammar::Grammar getCalcGrammarFromOrcus( os::formula_grammar_t grammar )
     268             : {
     269           0 :     formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_ODFF;
     270           0 :     switch(grammar)
     271             :     {
     272             :         case orcus::spreadsheet::ods:
     273           0 :             eGrammar = formula::FormulaGrammar::GRAM_ODFF;
     274           0 :             break;
     275             :         case orcus::spreadsheet::xlsx_2007:
     276             :         case orcus::spreadsheet::xlsx_2010:
     277           0 :             eGrammar = formula::FormulaGrammar::GRAM_OOXML;
     278           0 :             break;
     279             :         case orcus::spreadsheet::gnumeric:
     280           0 :             eGrammar = formula::FormulaGrammar::GRAM_ENGLISH_XL_A1;
     281           0 :             break;
     282             :     }
     283             : 
     284           0 :     return eGrammar;
     285             : }
     286             : 
     287             : }
     288             : 
     289           0 : void ScOrcusSheet::set_formula(
     290             :     os::row_t row, os::col_t col, os::formula_grammar_t grammar, const char* p, size_t n)
     291             : {
     292           0 :     OUString aFormula(p, n, RTL_TEXTENCODING_UTF8);
     293           0 :     formula::FormulaGrammar::Grammar eGrammar = getCalcGrammarFromOrcus( grammar );
     294           0 :     mrDoc.setFormulaCell(ScAddress(col,row,mnTab), aFormula, eGrammar);
     295           0 :     cellInserted();
     296           0 : }
     297             : 
     298           0 : void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, const char* p, size_t n)
     299             : {
     300           0 :     ScFormulaCell* pCell = mrDoc.getDoc().GetFormulaCell(ScAddress(col, row, mnTab));
     301           0 :     if (!pCell)
     302             :     {
     303             :         SAL_WARN("sc", "trying to set formula result for non formula \
     304             :                 cell! Col: " << col << ";Row: " << row << ";Tab: " << mnTab);
     305           0 :         return;
     306             :     }
     307           0 :     OUString aResult( p, n, RTL_TEXTENCODING_UTF8);
     308           0 :     pCell->SetHybridString(aResult);
     309             : }
     310             : 
     311           0 : void ScOrcusSheet::set_shared_formula(
     312             :     os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex,
     313             :     const char* p_formula, size_t n_formula)
     314             : {
     315           0 :     ScAddress aPos(col, row, mnTab);
     316           0 :     OUString aFormula(p_formula, n_formula, RTL_TEXTENCODING_UTF8);
     317           0 :     formula::FormulaGrammar::Grammar eGram = getCalcGrammarFromOrcus(grammar);
     318             : 
     319             :     // Compile the formula expression into tokens.
     320           0 :     ScCompiler aComp(&mrDoc.getDoc(), aPos);
     321           0 :     aComp.SetGrammar(eGram);
     322           0 :     ScTokenArray* pArray = aComp.CompileString(aFormula);
     323           0 :     if (!pArray)
     324             :         // Tokenization failed.
     325           0 :         return;
     326             : 
     327           0 :     maFormulaGroups.set(sindex, pArray);
     328             : 
     329           0 :     ScFormulaCell* pCell = new ScFormulaCell(&mrDoc.getDoc(), aPos, *pArray);
     330           0 :     mrDoc.setFormulaCell(aPos, pCell);
     331           0 :     cellInserted();
     332             : 
     333             :     // For now, orcus doesn't support setting cached result. Mark it for re-calculation.
     334           0 :     pCell->SetDirty(true);
     335             : }
     336             : 
     337           0 : void ScOrcusSheet::set_shared_formula(
     338             :     os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex,
     339             :     const char* p_formula, size_t n_formula, const char* /*p_range*/, size_t /*n_range*/)
     340             : {
     341           0 :     set_shared_formula(row, col, grammar, sindex, p_formula, n_formula);
     342           0 : }
     343             : 
     344           0 : void ScOrcusSheet::set_shared_formula(os::row_t row, os::col_t col, size_t sindex)
     345             : {
     346           0 :     ScAddress aPos(col, row, mnTab);
     347             : 
     348           0 :     const ScTokenArray* pArray = maFormulaGroups.get(sindex);
     349           0 :     if (!pArray)
     350           0 :         return;
     351             : 
     352           0 :     ScFormulaCell* pCell = new ScFormulaCell(&mrDoc.getDoc(), aPos, *pArray);
     353           0 :     mrDoc.setFormulaCell(aPos, pCell);
     354           0 :     cellInserted();
     355             : 
     356             :     // For now, orcus doesn't support setting cached result. Mark it for re-calculation.
     357           0 :     pCell->SetDirty(true);
     358             : }
     359             : 
     360           0 : void ScOrcusSheet::set_array_formula(
     361             :     os::row_t row, os::col_t col, os::formula_grammar_t grammar,
     362             :     const char* p, size_t n, os::row_t array_rows, os::col_t array_cols)
     363             : {
     364           0 :     formula::FormulaGrammar::Grammar eGrammar = getCalcGrammarFromOrcus( grammar );
     365           0 :     OUString aFormula(p, n, RTL_TEXTENCODING_UTF8);
     366             : 
     367           0 :     ScRange aRange(col, row, mnTab, col+array_cols, row + array_rows, mnTab);
     368             : 
     369           0 :     ScCompiler aComp(&mrDoc.getDoc(), aRange.aStart);
     370           0 :     aComp.SetGrammar(eGrammar);
     371           0 :     boost::scoped_ptr<ScTokenArray> pArray(aComp.CompileString(aFormula));
     372           0 :     if (!pArray)
     373           0 :         return;
     374             : 
     375           0 :     mrDoc.setMatrixCells(aRange, *pArray, eGrammar);
     376             : }
     377             : 
     378           0 : void ScOrcusSheet::set_array_formula(
     379             :     os::row_t /*row*/, os::col_t /*col*/, os::formula_grammar_t /*grammar*/,
     380             :     const char* /*p*/, size_t /*n*/, const char* /*p_range*/, size_t /*n_range*/)
     381             : {
     382           0 : }
     383             : 
     384           0 : ScOrcusSharedStrings::ScOrcusSharedStrings(ScOrcusFactory& rFactory) :
     385           0 :     mrFactory(rFactory) {}
     386             : 
     387           0 : size_t ScOrcusSharedStrings::append(const char* s, size_t n)
     388             : {
     389           0 :     OUString aNewString(s, n, RTL_TEXTENCODING_UTF8);
     390           0 :     return mrFactory.appendString(aNewString);
     391             : }
     392             : 
     393           0 : size_t ScOrcusSharedStrings::add(const char* s, size_t n)
     394             : {
     395           0 :     OUString aNewString(s, n, RTL_TEXTENCODING_UTF8);
     396           0 :     return mrFactory.addString(aNewString);
     397             : }
     398             : 
     399           0 : void ScOrcusSharedStrings::set_segment_font(size_t /*font_index*/)
     400             : {
     401           0 : }
     402             : 
     403           0 : void ScOrcusSharedStrings::set_segment_bold(bool /*b*/)
     404             : {
     405           0 : }
     406             : 
     407           0 : void ScOrcusSharedStrings::set_segment_italic(bool /*b*/)
     408             : {
     409           0 : }
     410             : 
     411           0 : void ScOrcusSharedStrings::set_segment_font_name(const char* /*s*/, size_t /*n*/)
     412             : {
     413           0 : }
     414             : 
     415           0 : void ScOrcusSharedStrings::set_segment_font_size(double /*point*/)
     416             : {
     417           0 : }
     418             : 
     419           0 : void ScOrcusSharedStrings::set_segment_font_color(orcus::spreadsheet::color_elem_t,
     420             :             orcus::spreadsheet::color_elem_t,
     421             :             orcus::spreadsheet::color_elem_t,
     422             :             orcus::spreadsheet::color_elem_t)
     423             : {
     424           0 : }
     425             : 
     426           0 : void ScOrcusSharedStrings::append_segment(const char* s, size_t n)
     427             : {
     428           0 :     maCurSegment.append(s, n);
     429           0 : }
     430             : 
     431           0 : size_t ScOrcusSharedStrings::commit_segments()
     432             : {
     433           0 :     OString aStr = maCurSegment.makeStringAndClear();
     434           0 :     return mrFactory.addString(OStringToOUString(aStr, RTL_TEXTENCODING_UTF8));
     435             : }
     436             : 
     437           0 : void ScOrcusStyles::set_font_count(size_t /*n*/)
     438             : {
     439             :     // needed at all?
     440           0 : }
     441             : 
     442           0 : void ScOrcusStyles::set_font_bold(bool /*b*/)
     443             : {
     444           0 : }
     445             : 
     446           0 : void ScOrcusStyles::set_font_italic(bool /*b*/)
     447             : {
     448           0 : }
     449             : 
     450           0 : void ScOrcusStyles::set_font_name(const char* /*s*/, size_t /*n*/)
     451             : {
     452           0 : }
     453             : 
     454           0 : void ScOrcusStyles::set_font_size(double /*point*/)
     455             : {
     456           0 : }
     457             : 
     458           0 : void ScOrcusStyles::set_font_underline(orcus::spreadsheet::underline_t /*e*/)
     459             : {
     460           0 : }
     461             : 
     462           0 : void ScOrcusStyles::set_font_color(orcus::spreadsheet::color_elem_t,
     463             :             orcus::spreadsheet::color_elem_t,
     464             :             orcus::spreadsheet::color_elem_t,
     465             :             orcus::spreadsheet::color_elem_t)
     466             : {
     467           0 : }
     468             : 
     469           0 : size_t ScOrcusStyles::commit_font()
     470             : {
     471           0 :     return 0;
     472             : }
     473             : 
     474             : 
     475             : // fill
     476             : 
     477           0 : void ScOrcusStyles::set_fill_count(size_t /*n*/)
     478             : {
     479             :     // needed at all?
     480           0 : }
     481             : 
     482           0 : void ScOrcusStyles::set_fill_pattern_type(const char* /*s*/, size_t /*n*/)
     483             : {
     484           0 : }
     485             : 
     486           0 : void ScOrcusStyles::set_fill_fg_color(orcus::spreadsheet::color_elem_t /*alpha*/, orcus::spreadsheet::color_elem_t /*red*/, orcus::spreadsheet::color_elem_t /*green*/, orcus::spreadsheet::color_elem_t /*blue*/)
     487             : {
     488           0 : }
     489             : 
     490           0 : void ScOrcusStyles::set_fill_bg_color(orcus::spreadsheet::color_elem_t /*alpha*/, orcus::spreadsheet::color_elem_t /*red*/, orcus::spreadsheet::color_elem_t /*green*/, orcus::spreadsheet::color_elem_t /*blue*/)
     491             : {
     492           0 : }
     493             : 
     494           0 : size_t ScOrcusStyles::commit_fill()
     495             : {
     496           0 :     return 0;
     497             : }
     498             : 
     499             : 
     500             : // border
     501             : 
     502           0 : void ScOrcusStyles::set_border_count(size_t /*n*/)
     503             : {
     504             :     // needed at all?
     505           0 : }
     506             : 
     507           0 : void ScOrcusStyles::set_border_style(orcus::spreadsheet::border_direction_t /*dir*/, const char* /*s*/, size_t /*n*/)
     508             : {
     509             :     // implement later
     510           0 : }
     511             : 
     512           0 : void ScOrcusStyles::set_border_color(orcus::spreadsheet::border_direction_t /*dir*/,
     513             :             orcus::spreadsheet::color_elem_t,
     514             :             orcus::spreadsheet::color_elem_t,
     515             :             orcus::spreadsheet::color_elem_t,
     516             :             orcus::spreadsheet::color_elem_t)
     517             : {
     518             :     // implement later
     519           0 : }
     520             : 
     521           0 : size_t ScOrcusStyles::commit_border()
     522             : {
     523           0 :     return 0;
     524             : }
     525             : 
     526             : 
     527             : // cell protection
     528           0 : void ScOrcusStyles::set_cell_hidden(bool /*b*/)
     529             : {
     530           0 : }
     531             : 
     532           0 : void ScOrcusStyles::set_cell_locked(bool /*b*/)
     533             : {
     534           0 : }
     535             : 
     536           0 : size_t ScOrcusStyles::commit_cell_protection()
     537             : {
     538           0 :     return 0;
     539             : }
     540             : 
     541           0 : void ScOrcusStyles::set_number_format_count(size_t)
     542             : {
     543           0 : }
     544             : 
     545           0 : void ScOrcusStyles::set_number_format_identifier(size_t)
     546             : {
     547           0 : }
     548             : 
     549           0 : void ScOrcusStyles::set_number_format_code(const char* /*s*/, size_t /*n*/)
     550             : {
     551           0 : }
     552             : 
     553           0 : size_t ScOrcusStyles::commit_number_format()
     554             : {
     555           0 :     return 0;
     556             : }
     557             : 
     558             : // cell style xf
     559             : 
     560           0 : void ScOrcusStyles::set_cell_style_xf_count(size_t /*n*/)
     561             : {
     562             :     // needed at all?
     563           0 : }
     564             : 
     565           0 : size_t ScOrcusStyles::commit_cell_style_xf()
     566             : {
     567           0 :     return 0;
     568             : }
     569             : 
     570             : 
     571             : // cell xf
     572             : 
     573           0 : void ScOrcusStyles::set_cell_xf_count(size_t /*n*/)
     574             : {
     575             :     // needed at all?
     576           0 : }
     577             : 
     578           0 : size_t ScOrcusStyles::commit_cell_xf()
     579             : {
     580           0 :     return 0;
     581             : }
     582             : 
     583             : 
     584             : // xf (cell format) - used both by cell xf and cell style xf.
     585             : 
     586           0 : void ScOrcusStyles::set_xf_number_format(size_t /*index*/)
     587             : {
     588             :     // no number format interfaces implemented yet
     589           0 : }
     590             : 
     591           0 : void ScOrcusStyles::set_xf_font(size_t /*index*/)
     592             : {
     593           0 : }
     594             : 
     595           0 : void ScOrcusStyles::set_xf_fill(size_t /*index*/)
     596             : {
     597           0 : }
     598             : 
     599           0 : void ScOrcusStyles::set_xf_border(size_t /*index*/)
     600             : {
     601           0 : }
     602             : 
     603           0 : void ScOrcusStyles::set_xf_protection(size_t /*index*/)
     604             : {
     605           0 : }
     606             : 
     607           0 : void ScOrcusStyles::set_xf_style_xf(size_t /*index*/)
     608             : {
     609           0 : }
     610             : 
     611           0 : void ScOrcusStyles::set_xf_apply_alignment(bool /*b*/)
     612             : {
     613           0 : }
     614             : 
     615           0 : void ScOrcusStyles::set_xf_horizontal_alignment(orcus::spreadsheet::hor_alignment_t /*align*/)
     616             : {
     617           0 : }
     618             : 
     619           0 : void ScOrcusStyles::set_xf_vertical_alignment(orcus::spreadsheet::ver_alignment_t /*align*/)
     620             : {
     621           0 : }
     622             : 
     623             : 
     624             : // cell style entry
     625             : // not needed for now for gnumeric
     626             : 
     627           0 : void ScOrcusStyles::set_cell_style_count(size_t /*n*/)
     628             : {
     629             :     // needed at all?
     630           0 : }
     631             : 
     632           0 : void ScOrcusStyles::set_cell_style_name(const char* /*s*/, size_t /*n*/)
     633             : {
     634           0 : }
     635             : 
     636           0 : void ScOrcusStyles::set_cell_style_xf(size_t /*index*/)
     637             : {
     638           0 : }
     639             : 
     640           0 : void ScOrcusStyles::set_cell_style_builtin(size_t /*index*/)
     641             : {
     642             :     // not needed for gnumeric
     643           0 : }
     644             : 
     645           0 : size_t ScOrcusStyles::commit_cell_style()
     646             : {
     647           0 :     return 0;
     648             : }
     649             : 
     650             : 
     651             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10