]> git.lyx.org Git - features.git/blobdiff - src/insets/insettabular.C
Replace LString.h with support/std_string.h,
[features.git] / src / insets / insettabular.C
index 55b790ffa11f29303d6c0a7b8a60f0b3a2050fe4..66a59ad41efbae4cc616e2b24648e1f78608e7ca 100644 (file)
@@ -5,60 +5,47 @@
  *
  * \author Jürgen Vigna
  *
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
  */
 
 #include <config.h>
 
 #include "insettabular.h"
-#include "insettext.h"
 
 #include "buffer.h"
 #include "BufferView.h"
-#include "lfuns.h"
 #include "debug.h"
-#include "dimension.h"
 #include "funcrequest.h"
+#include "FuncStatus.h"
 #include "gettext.h"
 #include "language.h"
-#include "LaTeXFeatures.h"
-#include "Lsstream.h"
 #include "lyx_cb.h"
-#include "lyxfunc.h"
-#include "lyxlength.h"
 #include "lyxlex.h"
-#include "lyxtext.h"
+#include "metricsinfo.h"
+#include "paragraph_funcs.h"
 #include "ParagraphParameters.h"
 #include "undo_funcs.h"
 #include "WordLangTuple.h"
-#include "metricsinfo.h"
 
 #include "frontends/Alert.h"
-#include "frontends/Dialogs.h"
 #include "frontends/font_metrics.h"
 #include "frontends/LyXView.h"
 #include "frontends/Painter.h"
 
 #include "support/LAssert.h"
-#include "support/lstrings.h"
-
-#include <fstream>
-#include <algorithm>
-#include <cstdlib>
-#include <map>
 
+#include "support/std_sstream.h"
 
 using namespace lyx::support;
 using namespace lyx::graphics;
 
-using std::vector;
-using std::ostream;
-using std::ifstream;
-using std::max;
 using std::endl;
-using std::swap;
 using std::max;
+using std::swap;
 using std::auto_ptr;
+using std::ifstream;
+using std::ostream;
+using std::vector;
 
 
 namespace {
@@ -92,7 +79,7 @@ TabularFeature tabularFeature[] =
        { LyXTabular::ALIGN_BLOCK, "align-block" },
        { LyXTabular::VALIGN_TOP, "valign-top" },
        { LyXTabular::VALIGN_BOTTOM, "valign-bottom" },
-       { LyXTabular::VALIGN_CENTER, "valign-center" },
+       { LyXTabular::VALIGN_MIDDLE, "valign-middle" },
        { LyXTabular::M_TOGGLE_LINE_TOP, "m-toggle-line-top" },
        { LyXTabular::M_TOGGLE_LINE_BOTTOM, "m-toggle-line-bottom" },
        { LyXTabular::M_TOGGLE_LINE_LEFT, "m-toggle-line-left" },
@@ -102,7 +89,7 @@ TabularFeature tabularFeature[] =
        { LyXTabular::M_ALIGN_CENTER, "m-align-center" },
        { LyXTabular::M_VALIGN_TOP, "m-valign-top" },
        { LyXTabular::M_VALIGN_BOTTOM, "m-valign-bottom" },
-       { LyXTabular::M_VALIGN_CENTER, "m-valign-center" },
+       { LyXTabular::M_VALIGN_MIDDLE, "m-valign-middle" },
        { LyXTabular::MULTICOLUMN, "multicolumn" },
        { LyXTabular::SET_ALL_LINES, "set-all-lines" },
        { LyXTabular::UNSET_ALL_LINES, "unset-all-lines" },
@@ -201,9 +188,9 @@ auto_ptr<InsetBase> InsetTabular::clone() const
 }
 
 
-Buffer const * InsetTabular::buffer() const
+Buffer const & InsetTabular::buffer() const
 {
-       return buffer_;
+       return *buffer_;
 }
 
 
@@ -220,14 +207,14 @@ void InsetTabular::buffer(Buffer * b)
 }
 
 
-void InsetTabular::write(Buffer const * buf, ostream & os) const
+void InsetTabular::write(Buffer const & buf, ostream & os) const
 {
        os << "Tabular" << endl;
        tabular.write(buf, os);
 }
 
 
-void InsetTabular::read(Buffer const * buf, LyXLex & lex)
+void InsetTabular::read(Buffer const & buf, LyXLex & lex)
 {
        bool const old_format = (lex.getString() == "\\LyXTable");
 
@@ -422,7 +409,7 @@ void InsetTabular::insetUnlock(BufferView * bv)
 
 void InsetTabular::updateLocal(BufferView * bv) const
 {
-       bv->updateInset();
+       bv->updateInset(this);
        if (locked)
                resetPos(bv);
 }
@@ -856,14 +843,14 @@ InsetOld::RESULT InsetTabular::localDispatch(FuncRequest const & cmd)
                        updateLocal(bv);
                break;
        case LFUN_NEXT: {
-               if (hs) 
+               if (hs)
                        clearSelection();
                int column = actcol;
                unlockInsetInInset(bv, the_locking_inset);
-               if (bv->text->top_y() + bv->painter().paperHeight() <
+               if (bv->top_y() + bv->painter().paperHeight() <
                    top_baseline + tabular.getHeightOfTabular())
                        {
-                               bv->scrollDocView(bv->text->top_y() + bv->painter().paperHeight());
+                               bv->scrollDocView(bv->top_y() + bv->painter().paperHeight());
                                actcell = tabular.getCellBelow(first_visible_cell) + column;
                        } else {
                                actcell = tabular.getFirstCellInRow(tabular.rows() - 1) + column;
@@ -878,7 +865,7 @@ InsetOld::RESULT InsetTabular::localDispatch(FuncRequest const & cmd)
                int column = actcol;
                unlockInsetInInset(bv, the_locking_inset);
                if (top_baseline < 0) {
-                       bv->scrollDocView(bv->text->top_y() - bv->painter().paperHeight());
+                       bv->scrollDocView(bv->top_y() - bv->painter().paperHeight());
                        if (top_baseline > 0)
                                actcell = column;
                        else
@@ -1085,29 +1072,29 @@ InsetOld::RESULT InsetTabular::localDispatch(FuncRequest const & cmd)
 }
 
 
-int InsetTabular::latex(Buffer const * buf, ostream & os,
+int InsetTabular::latex(Buffer const & buf, ostream & os,
                        LatexRunParams const & runparams) const
 {
        return tabular.latex(buf, os, runparams);
 }
 
 
-int InsetTabular::ascii(Buffer const * buf, ostream & os, int ll) const
+int InsetTabular::ascii(Buffer const & buf, ostream & os, int ll) const
 {
        if (ll > 0)
-               return tabular.ascii(buf, os, (int)parOwner()->params().depth(),
+               return tabular.ascii(buf, os, ownerPar(buf, this).params().depth(),
                                      false, 0);
        return tabular.ascii(buf, os, 0, false, 0);
 }
 
 
-int InsetTabular::linuxdoc(Buffer const * buf, ostream & os) const
+int InsetTabular::linuxdoc(Buffer const & buf, ostream & os) const
 {
        return tabular.linuxdoc(buf,os);
 }
 
 
-int InsetTabular::docbook(Buffer const * buf, ostream & os, bool mixcont) const
+int InsetTabular::docbook(Buffer const & buf, ostream & os, bool mixcont) const
 {
        int ret = 0;
        InsetOld * master;
@@ -1614,9 +1601,9 @@ void InsetTabular::tabularFeatures(BufferView * bv,
                setVAlign = LyXTabular::LYX_VALIGN_BOTTOM;
                break;
 
-       case LyXTabular::M_VALIGN_CENTER:
-       case LyXTabular::VALIGN_CENTER:
-               setVAlign = LyXTabular::LYX_VALIGN_CENTER;
+       case LyXTabular::M_VALIGN_MIDDLE:
+       case LyXTabular::VALIGN_MIDDLE:
+               setVAlign = LyXTabular::LYX_VALIGN_MIDDLE;
                break;
 
        default:
@@ -1650,10 +1637,7 @@ void InsetTabular::tabularFeatures(BufferView * bv,
                        // the insettext of the active cell (if any)
                        // until later (see InsetText::do_resize)
                        unlockInsetInInset(bv, the_locking_inset);
-
-                       for (int i = 0; i < tabular.rows(); ++i)
-                               tabular.getCellInset(i, column).resizeLyXText(bv);
-                       updateLocal(bv);
+                       bv->update();
                }
 
                if (vallen.zero()
@@ -1677,10 +1661,6 @@ void InsetTabular::tabularFeatures(BufferView * bv,
                        // the insettext of the active cell (if any)
                        // until later (see InsetText::do_resize)
                        unlockInsetInInset(bv, the_locking_inset);
-
-                       for (int i = 0; i < tabular.rows(); ++i)
-                               tabular.getCellInset(i, column).resizeLyXText(bv);
-
                        updateLocal(bv);
                }
        }
@@ -1803,11 +1783,11 @@ void InsetTabular::tabularFeatures(BufferView * bv,
 
        case LyXTabular::M_VALIGN_TOP:
        case LyXTabular::M_VALIGN_BOTTOM:
-       case LyXTabular::M_VALIGN_CENTER:
+       case LyXTabular::M_VALIGN_MIDDLE:
                flag = false;
        case LyXTabular::VALIGN_TOP:
        case LyXTabular::VALIGN_BOTTOM:
-       case LyXTabular::VALIGN_CENTER:
+       case LyXTabular::VALIGN_MIDDLE:
                for (int i = sel_row_start; i <= sel_row_end; ++i)
                        for (int j = sel_col_start; j <= sel_col_end; ++j)
                                tabular.setVAlignment(
@@ -1987,18 +1967,9 @@ bool InsetTabular::insetHit(BufferView *, int x, int) const
 }
 
 
-void InsetTabular::deleteLyXText(BufferView * bv, bool recursive) const
-{
-       resizeLyXText(bv, recursive);
-}
-
-
-void InsetTabular::resizeLyXText(BufferView * bv, bool force) const
+void InsetTabular::deleteLyXText(BufferView * /*bv*/, bool /*recursive*/) const
 {
-       if (force)
-               for (int i = 0; i < tabular.rows(); ++i)
-                       for (int j = 0; j < tabular.columns(); ++j)
-                               tabular.getCellInset(i, j).resizeLyXText(bv, true);
+       //resizeLyXText(bv, recursive);
 }
 
 
@@ -2147,10 +2118,10 @@ FuncStatus InsetTabular::getStatus(string const & what) const
                status.setOnOff(tabular.getVAlignment(actcell, flag) == LyXTabular::LYX_VALIGN_BOTTOM);
                break;
 
-       case LyXTabular::M_VALIGN_CENTER:
+       case LyXTabular::M_VALIGN_MIDDLE:
                flag = false;
-       case LyXTabular::VALIGN_CENTER:
-               status.setOnOff(tabular.getVAlignment(actcell, flag) == LyXTabular::LYX_VALIGN_CENTER);
+       case LyXTabular::VALIGN_MIDDLE:
+               status.setOnOff(tabular.getVAlignment(actcell, flag) == LyXTabular::LYX_VALIGN_MIDDLE);
                break;
 
        case LyXTabular::SET_LONGTABULAR:
@@ -2261,8 +2232,8 @@ bool InsetTabular::copySelection(BufferView * bv)
                                    true, true);
 
        ostringstream os;
-       paste_tabular->ascii(bv->buffer(), os,
-                            (int)parOwner()->params().depth(), true, '\t');
+       paste_tabular->ascii(*bv->buffer(), os,
+                            ownerPar(*bv->buffer(), this).params().depth(), true, '\t');
        bv->stuffClipboard(STRCONV(os.str()));
        return true;
 }
@@ -2728,9 +2699,8 @@ int InsetTabularMailer::string2params(string const & in, InsetTabular & inset)
        if (!lex.isOK())
                return -1;
 
-       Buffer const * const buffer = inset.buffer();
-       if (buffer)
-               inset.read(buffer, lex);
+       Buffer const & buffer = inset.buffer();
+       inset.read(buffer, lex);
 
        // We can't set the active cell, but we can tell the frontend
        // what it is.
@@ -2740,9 +2710,7 @@ int InsetTabularMailer::string2params(string const & in, InsetTabular & inset)
 
 string const InsetTabularMailer::params2string(InsetTabular const & inset)
 {
-       Buffer const * const buffer = inset.buffer();
-       if (!buffer)
-               return string();
+       Buffer const & buffer = inset.buffer();
 
        ostringstream data;
        data << name_ << " \\active_cell " << inset.getActCell() << '\n';