]> git.lyx.org Git - lyx.git/blobdiff - src/buffer.h
split LyXText::rowlist_ into individual Paragraph::rows_ chunks
[lyx.git] / src / buffer.h
index 7bed397524734cad025e3df28aabb0201902ee81..75f6e0530f2a0c35e10c1c8100ac8d6f75b6169c 100644 (file)
@@ -25,9 +25,9 @@
 #include "errorlist.h"
 
 #include <boost/scoped_ptr.hpp>
+#include <boost/signals/signal0.hpp>
 #include <boost/signals/signal1.hpp>
 
-class BufferView;
 class LyXRC;
 class TeXErrors;
 class LaTeXFeatures;
@@ -69,29 +69,6 @@ public:
        /// Maybe we know the function already by number...
        bool dispatch(int ac, string const & argument, bool * result = 0);
 
-       ///
-       void resizeInsets(BufferView *);
-
-       /// Update window titles of all users.
-       void updateTitles() const;
-
-       /// Reset autosave timers for all users.
-       void resetAutosaveTimers() const;
-
-       /** Adds the BufferView to the users list.
-           Later this func will insert the \c BufferView into a real list,
-           not just setting a pointer.
-       */
-       void addUser(BufferView * u);
-
-       /** Removes the #BufferView# from the users list.
-           Since we only can have one at the moment, we just reset it.
-       */
-       void delUser(BufferView *);
-
-       ///
-       void redraw();
-
        /// Load the autosaved file.
        void loadAutoSaveFile();
 
@@ -103,7 +80,7 @@ public:
 
        // FIXME: it's very silly to pass a lex in here
        /// load a new file
-       bool readFile(LyXLex &, string const &);
+       bool readFile(string const &);
 
        /// read the header, returns number of unknown tokens
        int readHeader(LyXLex & lex);
@@ -129,7 +106,20 @@ public:
 
 public:
        /// This signal is emitted when a parsing error shows up.
-       boost::signal1<void, ErrorItem> parseError;
+       boost::signal1<void, ErrorItem> error;
+       /// This signal is emitted when some message shows up.
+       boost::signal1<void, 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.
+       boost::signal1<void, bool> readonly;
+       /// Update window titles of all users.
+       boost::signal0<void> updateTitles;
+       /// Reset autosave timers for all users.
+       boost::signal0<void> resetAutosaveTimers;
+       /// This signal is emitting if the buffer is being closed.
+       boost::signal0<void> closing;
+
 
        /** Save file.
            Takes care of auto-save files and backup file if requested.
@@ -151,14 +141,14 @@ public:
        void makeLaTeXFile(string const & filename,
                           string const & original_path,
                           LatexRunParams const &,
-                          bool only_body = false,
-                          bool only_preamble = false);
+                          bool output_preamble = true,
+                          bool output_body = true);
        ///
        void makeLaTeXFile(std::ostream & os,
                           string const & original_path,
                           LatexRunParams const &,
-                          bool only_body = false,
-                          bool only_preamble = false);
+                          bool output_preamble = true,
+                          bool output_body = true);
        ///
        void simpleDocBookOnePar(std::ostream &,
                                 ParagraphList::iterator par, int & desc_on,
@@ -260,10 +250,6 @@ public:
        ///
        void getLabelList(std::vector<string> &) const;
 
-       /** This will clearly have to change later. Later we can have more
-           than one user per buffer. */
-       BufferView * getUser() const;
-
        ///
        void changeLanguage(Language const * from, Language const * to);
 
@@ -306,6 +292,8 @@ public:
        AuthorList & authors();
 
 private:
+       bool do_writeFile(std::ostream & ofs) const;
+
        typedef std::map<string, bool> DepClean;
 
        /// need to regenerate .tex ?
@@ -329,16 +317,6 @@ private:
        /// The path to the document file.
        string filepath_;
 
-       /// Format number of buffer
-       int file_format;
-       /** A list of views using this buffer.
-           Why not keep a list of the BufferViews that use this buffer?
-
-           At least then we don't have to do a lot of magic like:
-           #buffer->lyx_gui->bufferview->updateLayoutChoice#. Just ask each
-           of the buffers in the list of users to do a #updateLayoutChoice#.
-       */
-       BufferView * users;
        ///
        boost::scoped_ptr<Messages> messages_;
 public:
@@ -346,10 +324,10 @@ public:
        class inset_iterator {
        public:
                typedef std::input_iterator_tag iterator_category;
-               typedef Inset value_type;
+               typedef InsetOld value_type;
                typedef ptrdiff_t difference_type;
-               typedef Inset * pointer;
-               typedef Inset & reference;
+               typedef InsetOld * pointer;
+               typedef InsetOld & reference;
                typedef ParagraphList::iterator base_type;
 
                ///
@@ -409,7 +387,7 @@ public:
        ParConstIterator par_iterator_end() const;
 
        ///
-       Inset * getInsetFromID(int id_arg) const;
+       InsetOld * getInsetFromID(int id_arg) const;
 };
 
 bool operator==(Buffer::inset_iterator const & iter1,