]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetTabular.cpp
Remove dead code.
[lyx.git] / src / insets / InsetTabular.cpp
index e149c1d810aa13e05074bdf0c238ed8c2542aab2..109bcd862cade0a9fb277cc02a21ee9c0c201eed 100644 (file)
@@ -38,6 +38,7 @@
 #include "LyXRC.h"
 #include "MetricsInfo.h"
 #include "OutputParams.h"
+#include "output_xhtml.h"
 #include "Paragraph.h"
 #include "ParagraphParameters.h"
 #include "ParIterator.h"
@@ -2632,6 +2633,78 @@ int Tabular::docbook(odocstream & os, OutputParams const & runparams) const
 }
 
 
+docstring Tabular::xhtmlRow(XHTMLStream & xs, row_type row,
+                          OutputParams const & runparams) const
+{
+       docstring ret;
+       idx_type cell = getFirstCellInRow(row);
+
+       xs << StartTag("tr");
+       for (col_type j = 0; j < column_info.size(); ++j) {
+               if (isPartOfMultiColumn(row, j))
+                       continue;
+
+               stringstream attr;
+               attr << "align='";
+               switch (getAlignment(cell)) {
+               case LYX_ALIGN_LEFT:
+                       attr << "left";
+                       break;
+               case LYX_ALIGN_RIGHT:
+                       attr << "right";
+                       break;
+               default:
+                       attr << "center";
+                       break;
+               }
+               attr << "'";
+               attr << " valign='";
+               switch (getVAlignment(cell)) {
+               case LYX_VALIGN_TOP:
+                       attr << "top";
+                       break;
+               case LYX_VALIGN_BOTTOM:
+                       attr << "bottom";
+                       break;
+               case LYX_VALIGN_MIDDLE:
+                       attr << "middle";
+               }
+               attr << "'";
+
+               if (isMultiColumn(cell))
+                       attr << " colspan='" << j + columnSpan(cell) - 1<< "'";
+
+               xs << StartTag("td", attr.str());
+               ret += cellInset(cell)->xhtml(xs, runparams);
+               xs << EndTag("td");
+               ++cell;
+       }
+       xs << EndTag("tr");
+       return ret;
+}
+
+
+docstring Tabular::xhtml(XHTMLStream & xs, OutputParams const & runparams) const
+{
+       docstring ret;
+       xs << StartTag("table");
+
+       // It's unclear to me if we need to mess with the long table stuff. 
+       // We can borrow that too from docbook, if so.
+
+       xs << StartTag("tbody");
+       for (row_type i = 0; i < row_info.size(); ++i) {
+               if (isValidRow(i)) {
+                       ret += xhtmlRow(xs, i, runparams);
+               }
+       }
+       xs << EndTag("tbody");
+       xs << EndTag("table");
+
+       return ret;
+}
+
+
 bool Tabular::plaintextTopHLine(odocstream & os, row_type row,
                                   vector<unsigned int> const & clen) const
 {
@@ -2956,6 +3029,14 @@ docstring InsetTableCell::asString(bool intoInsets)
 }
 
 
+docstring InsetTableCell::xhtml(XHTMLStream & xs, OutputParams const & rp) const
+{
+       if (!isFixedWidth)
+               return InsetText::insetAsXHTML(xs, rp, InsetText::JustText);
+       return InsetText::xhtml(xs, rp);
+}
+
+
 
 /////////////////////////////////////////////////////////////////////
 //
@@ -3320,7 +3401,7 @@ void InsetTabular::edit(Cursor & cur, bool front, EntryDirection)
 }
 
 
-void InsetTabular::updateLabels(ParIterator const & it)
+void InsetTabular::updateLabels(ParIterator const & it, bool out)
 {
        // In a longtable, tell captions what the current float is
        Counters & cnts = buffer().masterBuffer()->params().documentClass().counters();
@@ -3332,7 +3413,7 @@ void InsetTabular::updateLabels(ParIterator const & it)
        it2.forwardPos();
        size_t const end = it2.nargs();
        for ( ; it2.idx() < end; it2.top().forwardIdx())
-               buffer().updateLabels(it2);
+               buffer().updateLabels(it2, out);
 
        //reset afterwards
        if (tabular.is_long_tabular)
@@ -4218,6 +4299,12 @@ int InsetTabular::docbook(odocstream & os, OutputParams const & runparams) const
 }
 
 
+docstring InsetTabular::xhtml(XHTMLStream & xs, OutputParams const & rp) const
+{
+       return tabular.xhtml(xs, rp);
+}
+
+
 void InsetTabular::validate(LaTeXFeatures & features) const
 {
        tabular.validate(features);
@@ -5299,7 +5386,7 @@ void InsetTabular::addPreview(DocIterator const & inset_pos,
        cell_pos.push_back(CursorSlice(*const_cast<InsetTabular *>(this)));
        for (row_type i = 0; i < rows; ++i) {
                for (col_type j = 0; j < columns; ++j) {
-                       cell_pos.top().idx() = index(i, j);
+                       cell_pos.top().idx() = tabular.cellIndex(i, j);
                        tabular.cellInset(i, j)->addPreview(cell_pos, loader);
                }
        }