]> git.lyx.org Git - lyx.git/blobdiff - src/buffer.h
more cursor dispatch
[lyx.git] / src / buffer.h
index 3e8ab31b8580d3e406001cc3a7456cbe5cc2d7bd..431725bb378e8221346cf102014fc6a0e057839a 100644 (file)
@@ -22,7 +22,6 @@
 #include <boost/signals/signal0.hpp>
 #include <boost/signals/signal1.hpp>
 
-#include "support/std_string.h"
 #include <iosfwd>
 #include <map>
 #include <utility>
 class BufferParams;
 class ErrorItem;
 class FuncRequest;
+class InsetBase;
 class LyXFont;
 class LyXLex;
 class LyXRC;
+class LyXText;
 class LyXVC;
 class LaTeXFeatures;
-class LatexRunParams;
 class Language;
 class Messages;
+class OutputParams;
 class ParIterator;
+class PosIterator;
 class ParConstIterator;
 class TeXErrors;
 class TexRow;
@@ -65,7 +67,7 @@ public:
            \param file
            \param b  optional \c false by default
        */
-       explicit Buffer(string const & file, bool b = false);
+       explicit Buffer(std::string const & file, bool b = false);
 
        /// Destructor
        ~Buffer();
@@ -73,7 +75,7 @@ public:
        /** High-level interface to buffer functionality.
            This function parses a command string and executes it
        */
-       bool dispatch(string const & command, bool * result = 0);
+       bool dispatch(std::string const & command, bool * result = 0);
 
        /// Maybe we know the function already by number...
        bool dispatch(FuncRequest const & func, bool * result = 0);
@@ -82,9 +84,9 @@ public:
        void loadAutoSaveFile();
 
        /// load a new file
-       bool readFile(string const & filename);
+       bool readFile(std::string const & filename);
 
-       bool readFile(string const & filename, ParagraphList::iterator pit);
+       bool readFile(std::string const & filename, ParagraphList::iterator pit);
 
        /// read the header, returns number of unknown tokens
        int readHeader(LyXLex & lex);
@@ -93,17 +95,11 @@ public:
            \param par if != 0 insert the file.
            \return \c false if file is not completely read.
        */
-       bool readBody(LyXLex &, ParagraphList::iterator pit);
-
-       /// This parses a single token
-       int readParagraph(LyXLex &, string const & token,
-                         ParagraphList & pars,
-                         ParagraphList::iterator & pit,
-                         lyx::depth_type & depth);
+       bool readBody(LyXLex &);
 
        ///
        void insertStringAsLines(ParagraphList::iterator &, lyx::pos_type &,
-                                LyXFont const &, string const &);
+                                LyXFont const &, std::string const &);
        ///
        ParIterator getParFromID(int id) const;
        /// do we have a paragraph with this id?
@@ -112,7 +108,7 @@ public:
        /// This signal is emitted when a parsing error shows up.
        boost::signal1<void, ErrorItem> error;
        /// This signal is emitted when some message shows up.
-       boost::signal1<void, string> message;
+       boost::signal1<void, std::string> message;
        /// This signal is emitted when the buffer busy status change.
        boost::signal1<void, bool> busy;
        /// This signal is emitted when the buffer readonly status change.
@@ -132,46 +128,36 @@ public:
        bool save() const;
 
        /// Write file. Returns \c false if unsuccesful.
-       bool writeFile(string const &) const;
+       bool writeFile(std::string const &) const;
 
        ///
-       void writeFileAscii(string const &, int);
-       ///
-       void writeFileAscii(std::ostream &, int);
+       void writeFileAscii(std::string const &, OutputParams const &);
        ///
-       string const asciiParagraph(Paragraph const &, unsigned int linelen,
-                                   bool noparbreak = false) const;
+       void writeFileAscii(std::ostream &, OutputParams const &);
        /// Just a wrapper for the method below, first creating the ofstream.
-       void makeLaTeXFile(string const & filename,
-                          string const & original_path,
-                          LatexRunParams const &,
+       void makeLaTeXFile(std::string const & filename,
+                          std::string const & original_path,
+                          OutputParams const &,
                           bool output_preamble = true,
                           bool output_body = true);
        ///
        void makeLaTeXFile(std::ostream & os,
-                          string const & original_path,
-                          LatexRunParams const &,
+                          std::string const & original_path,
+                          OutputParams const &,
                           bool output_preamble = true,
                           bool output_body = true);
        ///
-       void simpleDocBookOnePar(std::ostream &,
-                                ParagraphList::iterator par,
-                                int & desc_on,
-                                lyx::depth_type depth) const;
-       ///
-       void simpleLinuxDocOnePar(std::ostream & os,
-                                 ParagraphList::iterator par,
-                                 lyx::depth_type depth) const;
+       void makeLinuxDocFile(std::string const & filename,
+                             OutputParams const & runparams_in,
+                             bool only_body = false);
        ///
-       void makeLinuxDocFile(string const & filename,
-                             bool nice, bool only_body = false);
-       ///
-       void makeDocBookFile(string const & filename,
-                            bool nice, bool only_body = false);
+       void makeDocBookFile(std::string const & filename,
+                            OutputParams const & runparams_in,
+                            bool only_body = false);
        /// returns the main language for the buffer (document)
        Language const * getLanguage() const;
        /// get l10n translated to the buffers language
-       string const B_(string const & l10n) const;
+       std::string const B_(std::string const & l10n) const;
 
        ///
        int runChktex();
@@ -180,7 +166,7 @@ public:
        ///
        bool isBakClean() const;
        ///
-       bool isDepClean(string const & name) const;
+       bool isDepClean(std::string const & name) const;
 
        /// mark the main lyx file as not needing saving
        void markClean() const;
@@ -189,7 +175,7 @@ public:
        void markBakClean();
 
        ///
-       void markDepClean(string const & name);
+       void markDepClean(std::string const & name);
 
        ///
        void setUnnamed(bool flag = true);
@@ -201,25 +187,25 @@ public:
        void markDirty();
 
        /// Returns the buffer's filename. It is always an absolute path.
-       string const & fileName() const;
+       std::string const & fileName() const;
 
        /// Returns the the path where the buffer lives.
        /// It is always an absolute path.
-       string const & filePath() const;
+       std::string const & filePath() const;
 
        /** A transformed version of the file name, adequate for LaTeX.
            \param no_path optional if \c true then the path is stripped.
        */
-       string const getLatexName(bool no_path = true) const;
+       std::string const getLatexName(bool no_path = true) const;
 
        /// Get the name and type of the log.
-       std::pair<LogType, string> const getLogName() const;
+       std::pair<LogType, std::string> const getLogName() const;
 
        /// Change name of buffer. Updates "read-only" flag.
-       void setFileName(string const & newfile);
+       void setFileName(std::string const & newfile);
 
        /// Name of the document's parent
-       void setParentName(string const &);
+       void setParentName(std::string const &);
 
        /// Is buffer read-only?
        bool isReadonly() const;
@@ -251,9 +237,9 @@ public:
        void validate(LaTeXFeatures &) const;
 
        /// return all bibkeys from buffer and its childs
-       void fillWithBibKeys(std::vector<std::pair<string, string> > & keys) const;
+       void fillWithBibKeys(std::vector<std::pair<std::string, std::string> > & keys) const;
        ///
-       void getLabelList(std::vector<string> &) const;
+       void getLabelList(std::vector<std::string> &) const;
 
        ///
        void changeLanguage(Language const * from, Language const * to);
@@ -288,13 +274,7 @@ public:
        LyXVC const & lyxvc() const;
 
        /// Where to put temporary files.
-       string const & temppath() const;
-
-       /** If we are writing a nice LaTeX file or not.
-           While writing as LaTeX, tells whether we are
-           doing a 'nice' LaTeX file */
-       bool & niceFile();
-       bool niceFile() const;
+       std::string const & temppath() const;
 
        /// Used when typesetting to place errorboxes.
        TexRow & texrow();
@@ -303,10 +283,10 @@ public:
        class inset_iterator {
        public:
                typedef std::input_iterator_tag iterator_category;
-               typedef InsetOld value_type;
+               typedef InsetBase value_type;
                typedef ptrdiff_t difference_type;
-               typedef InsetOld * pointer;
-               typedef InsetOld & reference;
+               typedef InsetBase * pointer;
+               typedef InsetBase & reference;
                typedef ParagraphList::iterator base_type;
 
                ///
@@ -356,6 +336,10 @@ public:
        /// return the const end of all *top-level* insets in the buffer
        inset_iterator inset_const_iterator_end() const;
 
+       ///
+       PosIterator pos_iterator_begin();
+       ///
+       PosIterator pos_iterator_end();
        ///
        ParIterator par_iterator_begin();
        ///
@@ -365,15 +349,23 @@ public:
        ///
        ParConstIterator par_iterator_end() const;
 
+       /** \returns true only when the file is fully loaded.
+        *  Used to prevent the premature generation of previews
+        *  and by the citation inset.
+        */
+       bool fully_loaded() const;
+       /// Set by buffer_funcs' newFile.
+       void fully_loaded(bool);
+
        ///
-       InsetOld * getInsetFromID(int id_arg) const;
+       LyXText & text() const;
 
 private:
        /** Inserts a file into a document
            \param par if != 0 insert the file.
            \return \c false if method fails.
        */
-       bool readFile(LyXLex &, string const & filename,
+       bool readFile(LyXLex &, std::string const & filename,
                      ParagraphList::iterator pit);
 
        bool do_writeFile(std::ostream & ofs) const;