]> git.lyx.org Git - lyx.git/blobdiff - src/buffer.h
spellchecker cleanup - fscked knows why pspell is broken, I am TOTALLY
[lyx.git] / src / buffer.h
index 880cff61b3d91dbbeb4706985e469e5747b8782e..dcb3fd17690188b779051b57dac497db1b0eff36 100644 (file)
 
 #include "LString.h"
 #include "undo.h"
-#include "undostack.h"
+#include "support/limited_stack.h"
+
 #include "lyxvc.h"
 #include "bufferparams.h"
 #include "texrow.h"
 #include "paragraph.h"
 
+#include <boost/shared_ptr.hpp>
+
 class BufferView;
 class LyXRC;
 class TeXErrors;
@@ -32,10 +35,7 @@ class LaTeXFeatures;
 class Language;
 class ParIterator;
 
-// When lyx 1.3.x starts we should enable this
-// btw. we should also test this with 1.2 so that we
-// do not get any surprises. (Lgb)
-//#define NO_COMPABILITY 1
+#define NO_COMPABILITY 1
 
 ///
 struct DEPCLEAN {
@@ -73,10 +73,10 @@ public:
        /** High-level interface to buffer functionality.
            This function parses a command string and executes it
        */
-       bool dispatch(string const & command);
+       bool dispatch(string const & command, bool * result = 0);
 
        /// Maybe we know the function already by number...
-       bool dispatch(int ac, string const & argument);
+       bool dispatch(int ac, string const & argument, bool * result = 0);
 
        ///
        void resizeInsets(BufferView *);
@@ -126,6 +126,8 @@ public:
        void insertStringAsLines(Paragraph *&, lyx::pos_type &,
                                 LyXFont const &, string const &) const;
 #ifndef NO_COMPABILITY
+       ///
+       Inset * isErtInset(Paragraph * par, int pos) const;
        ///
        void insertErtContents(Paragraph * par, int & pos,
                               bool set_inactive = true);
@@ -143,7 +145,7 @@ public:
        bool save() const;
 
        /// Write file. Returns \c false if unsuccesful.
-       bool writeFile(string const &, bool) const;
+       bool writeFile(string const &) const;
 
        ///
        void writeFileAscii(string const & , int);
@@ -152,15 +154,23 @@ public:
        ///
        string const asciiParagraph(Paragraph const *, unsigned int linelen,
                                    bool noparbreak = false) const;
-       ///
+       /// Just a wrapper for the method below, first creating the ofstream.
        void makeLaTeXFile(string const & filename,
                           string const & original_path,
-                          bool nice, bool only_body = false);
+                          bool nice,
+                          bool only_body = false,
+                          bool only_preamble = false);
+       ///
+       void makeLaTeXFile(std::ostream & os,
+                          string const & original_path,
+                          bool nice,
+                          bool only_body = false,
+                          bool only_preamble = false);
        /** LaTeX all paragraphs from par to endpar.
            \param \a endpar if == 0 then to the end
        */
        void latexParagraphs(std::ostream & os, Paragraph * par,
-                            Paragraph * endpar, TexRow & texrow) const;
+                            Paragraph * endpar, TexRow & texrow, bool moving_arg = false) const;
        ///
        void simpleDocBookOnePar(std::ostream &,
                                 Paragraph * par, int & desc_on,
@@ -175,10 +185,10 @@ public:
        void makeDocBookFile(string const & filename,
                             bool nice, bool only_body = false);
        /// Open SGML/XML tag.
-       void sgmlOpenTag(std::ostream & os, Paragraph::depth_type depth,
+       int sgmlOpenTag(std::ostream & os, Paragraph::depth_type depth, bool mixcont,
                string const & latexname) const;
        /// Closes SGML/XML tag.
-       void sgmlCloseTag(std::ostream & os, Paragraph::depth_type depth,
+       int sgmlCloseTag(std::ostream & os, Paragraph::depth_type depth, bool mixcont,
                string const & latexname) const;
        ///
        void sgmlError(Paragraph * par, int pos, string const & message) const;
@@ -187,15 +197,15 @@ public:
        Language const * getLanguage() const;
        ///
        int runChktex();
-       ///
-       bool isLyxClean() const;
+       /// return true if the main lyx file does not need saving
+       bool isClean() const;
        ///
        bool isBakClean() const;
        ///
        bool isDepClean(string const & name) const;
 
-       ///
-       void markLyxClean() const;
+       /// mark the main lyx file as not needing saving
+       void markClean() const;
 
        ///
        void markBakClean();
@@ -265,24 +275,7 @@ public:
        ///
        string const getIncludeonlyList(char delim = ',');
        ///
-       std::vector<std::pair<string, string> > const getBibkeyList();
-       ///
-       struct TocItem {
-               TocItem(Paragraph * p, int d, string const & s)
-                       : par(p), depth(d), str(s) {}
-               ///
-               Paragraph * par;
-               ///
-               int depth;
-               ///
-               string str;
-       };
-       ///
-       typedef std::vector<TocItem> SingleList;
-       ///
-       typedef std::map<string, SingleList> Lists;
-       ///
-       Lists const getLists() const;
+       std::vector<std::pair<string, string> > const getBibkeyList() const;
        ///
        std::vector<string> const getLabelList();
 
@@ -296,10 +289,10 @@ public:
        bool isMultiLingual();
 
        /// Does this mean that this is buffer local?
-       UndoStack undostack;
+       limited_stack<boost::shared_ptr<Undo> > undostack;
 
        /// Does this mean that this is buffer local?
-       UndoStack redostack;
+       limited_stack<boost::shared_ptr<Undo> > redostack;
 
        ///
        BufferParams params;
@@ -398,6 +391,7 @@ public:
                        }
                        return tmp;
                }
+
                ///
                Inset * operator*() { return *it; }
 
@@ -467,7 +461,7 @@ Language const * Buffer::getLanguage() const
 
 
 inline
-bool Buffer::isLyxClean() const
+bool Buffer::isClean() const
 {
        return lyx_clean;
 }
@@ -481,7 +475,7 @@ bool Buffer::isBakClean() const
 
 
 inline
-void Buffer::markLyxClean() const
+void Buffer::markClean() const
 {
        if (!lyx_clean) {
                lyx_clean = true;
@@ -565,24 +559,6 @@ void Buffer::setParentName(string const & name)
 }
 
 
-///
-inline
-bool operator==(Buffer::TocItem const & a, Buffer::TocItem const & b)
-{
-       return a.par == b.par && a.str == b.str;
-       // No need to compare depth.
-}
-
-
-///
-inline
-bool operator!=(Buffer::TocItem const & a, Buffer::TocItem const & b)
-{
-       return !(a == b);
-       // No need to compare depth.
-}
-
-
 ///
 inline
 bool operator==(Buffer::inset_iterator const & iter1,