]> git.lyx.org Git - lyx.git/blobdiff - src/lyxparagraph.h
prepare for 1.1.6pre2
[lyx.git] / src / lyxparagraph.h
index abae1e2cf6d89be2bc628a81c1c0267503eebc7a..6d8d6129109aa9241555ef4440b7b4c563d3ef41 100644 (file)
 #pragma interface
 #endif
 
+//#define HAVE_ROPE 1
+
+#ifdef HAVE_ROPE
+#include <rope>
+#endif
+
 #include <vector>
 #include <list>
 
 #include "insets/lyxinset.h"
-#include "table.h"
 #include "vspace.h"
 #include "layout.h"
-#include "support/block.h"
+#include <boost/array.hpp>
 #include "language.h"
 
 class BufferParams;
@@ -37,10 +42,6 @@ class BufferView;
 // up. (Lgb)
 //#define NEW_INSETS 1
 
-// I dare you to try this one too. It is ortogonal with NEW_INSETS so you
-// can try both or just one of them.
-#define NEW_TABULAR 1
-
 /// A LyXParagraph holds all text, attributes and insets in a text paragraph
 class LyXParagraph  {
 public:
@@ -127,16 +128,23 @@ public:
        ///
        typedef char value_type;
        ///
+#ifndef HAVE_ROPE
        typedef std::vector<value_type> TextContainer;
+#else
+       typedef std::rope<value_type> TextContainer;
+#endif
        ///
-       typedef int size_type;
+       /* This should be TextContainer::size_type, but we need
+          signed values for now.
+       */
+       typedef TextContainer::difference_type size_type;
 
        ///
        LyXParagraph();
-       /// this konstruktor inserts the new paragraph in a list
+       /// this constructor inserts the new paragraph in a list
        explicit
        LyXParagraph(LyXParagraph * par);
-       /// the destruktors removes the new paragraph from the list
+       /// the destructor removes the new paragraph from the list
        ~LyXParagraph();
 
        ///
@@ -233,7 +241,9 @@ public:
        size_type size() const { return text.size(); }
        ///
        void fitToSize() {
+#ifndef HAVE_ROPE
                text.resize(text.size());
+#endif
        }
        ///
        void setContentsFromPar(LyXParagraph * par) {
@@ -241,7 +251,11 @@ public:
        }
        ///
        void clearContents() {
+#ifndef HAVE_ROPE
                text.clear();
+#else
+               text.erase(text.mutable_begin(), text.mutable_end());
+#endif
        }
        
        /// 
@@ -291,7 +305,7 @@ public:
        
 private:
        ///
-       block<int, 10> counter_;
+       array<int, 10> counter_;
 public:
        ///
        void setCounter(int i, int v) { counter_[i] = v; }
@@ -336,12 +350,6 @@ public:
        ///
        LyXParagraph * previous;
 
-#ifndef NEW_TABULAR
-       /* table stuff -- begin*/
-       ///
-       LyXTable * table;
-       /* table stuff -- end*/
-#endif
         /// 
         InsetBibKey * bibkey;  // ale970302
 
@@ -435,7 +443,11 @@ public:
        value_type GetChar(size_type pos) const;
        /// The position must already exist.
        void SetChar(size_type pos, value_type c) {
+#ifndef HAVE_ROPE
                text[pos] = c;
+#else
+               text.replace(pos, c);
+#endif
        }
        
        ///
@@ -540,17 +552,6 @@ public:
         void UnsetPExtraType(BufferParams const &);
        ///
        bool linuxDocConvertChar(char c, string & sgml_string);
-#ifndef NEW_TABULAR
-       ///
-       void DocBookContTableRows(Buffer const *,
-                                 std::ostream &, string & extra,
-                                 int & desc_on, size_type i,
-                                 int current_cell_number, int & column);
-       ///
-       void SimpleDocBookOneTablePar(Buffer const *,
-                                     std::ostream &, string & extra,
-                                     int & desc_on, int depth);
-#endif
 private:
        ///
        struct InsetTable {
@@ -634,16 +635,6 @@ private:
                                   std::ostream & foot, TexRow & foot_texrow,
                                   int & foot_count,
                                   bool parent_is_rtl);
-#endif
-#ifndef NEW_TABULAR
-       ///
-       bool SimpleTeXOneTablePar(Buffer const *, BufferParams const &,
-                                 std::ostream &, TexRow & texrow);
-       ///
-       bool TeXContTableRows(Buffer const *, BufferParams const &,
-                             std::ostream &, size_type i,
-                             int current_cell_number,
-                              int & column, TexRow & texrow);
 #endif
        ///
        void SimpleTeXBlanks(std::ostream &, TexRow & texrow,
@@ -679,7 +670,7 @@ public:
                ///
                Inset * operator*() { return (*it).inset; }
                ///
-               size_type getPos() {return (*it).pos; }
+               size_type getPos() const {return (*it).pos; }
                ///
                bool operator==(inset_iterator const & iter) const {
                        return it == iter.it;