]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
Fix bug #3038: wish for lfuns for zoom-in and zoom-out
[lyx.git] / src / Buffer.h
index 96c0bae617eb7532c43498ddda21d496d6a8c6e6..e50076f221f70a38173f8cb9903b0ae876455a4a 100644 (file)
@@ -110,6 +110,12 @@ public:
                timestamp_method, ///< Use timestamp, and checksum if timestamp has changed
        };
 
+       ///
+       enum UpdateScope {
+               UpdateMaster,
+               UpdateChildOnly
+       };
+
        /// Constructor
        explicit Buffer(std::string const & file, bool b = false);
 
@@ -124,9 +130,6 @@ public:
        /// Maybe we know the function already by number...
        bool dispatch(FuncRequest const & func, bool * result = 0);
 
-       /// Load the autosaved file.
-       void loadAutoSaveFile();
-
        /// read a new document from a string
        bool readString(std::string const &);
        /// load a new file
@@ -137,7 +140,7 @@ public:
 
        /** Reads a file without header.
            \param par if != 0 insert the file.
-           \return \c false if file is not completely read.
+           \return \c true if file is not completely read.
        */
        bool readDocument(Lexer &);
 
@@ -164,7 +167,7 @@ public:
        /// Write file. Returns \c false if unsuccesful.
        bool writeFile(support::FileName const &) const;
 
-  /// Loads LyX file \c filename into buffer, *  and \return success
+       /// Loads LyX file \c filename into buffer, *  and \return success
        bool loadLyXFile(support::FileName const & s);
 
        /// Fill in the ErrorList with the TeXErrors
@@ -282,6 +285,9 @@ public:
 
        /// \return true if \p child is a child of this \c Buffer.
        bool isChild(Buffer * child) const;
+       
+       /// return a vector with all children and grandchildren
+       std::vector<Buffer *> getChildren() const;
 
        /// Is buffer read-only?
        bool isReadonly() const;
@@ -309,12 +315,13 @@ public:
 
        /// Update the cache with all bibfiles in use (including bibfiles
        /// of loaded child documents).
-       void updateBibfilesCache() const;
+       void updateBibfilesCache(UpdateScope scope = UpdateMaster) const;
        ///
        void invalidateBibinfoCache();
        /// Return the cache with all bibfiles in use (including bibfiles
        /// of loaded child documents).
-       support::FileNameList const & getBibfilesCache() const;
+       support::FileNameList const & 
+               getBibfilesCache(UpdateScope scope = UpdateMaster) const;
        /// \return the bibliography information for this buffer's master,
        /// or just for it, if it isn't a child.
        BiblioInfo const & masterBibInfo() const;
@@ -442,10 +449,15 @@ public:
        ///
        void message(docstring const & msg) const;
 
+       ///
        void setGuiDelegate(frontend::GuiBufferDelegate * gui);
+       ///
+       bool hasGuiDelegate() const;
 
        ///
        void autoSave() const;
+       ///
+       void removeAutosaveFile() const;
 
        /// return the format of the buffer on a string
        std::string bufferFormat() const;
@@ -470,12 +482,24 @@ public:
        void setInsetLabel(docstring const & label, InsetLabel const * il);
        InsetLabel const * insetLabel(docstring const & label) const;
 
-       // FIXME: buf should should be const because updateLabels() modifies
-       // the contents of the paragraphs.
-       void updateLabels(bool childonly = false) const;
+       /// sets the buffer_ member for every inset in this buffer.
+       // FIXME This really shouldn't be needed, but at the moment it's not
+       // clear how to do it just for the individual pieces we need.
+       void setBuffersForInsets() const;
+       ///
+       void updateLabels(UpdateScope = UpdateMaster) const;
        ///
        void updateLabels(ParIterator & parit) const;
 
+       /// Find next word starting from \p from.
+       /// \p from initial position to search, will then points to the next
+       ///    word.
+       /// \p to will points to the end of the next word.
+       /// \p word will contain the found word if any.
+       /// \return true if a new word was found.
+       bool nextWord(DocIterator & from, DocIterator & to,
+               docstring & word) const;
+
 private:
        /// search for macro in local (buffer) table or in children
        MacroData const * getBufferMacro(docstring const & name,
@@ -498,6 +522,8 @@ private:
        */
        ReadStatus readFile(Lexer &, support::FileName const & filename,
                            bool fromString = false);
+       ///
+       support::FileName getAutosaveFilename() const;
 
        /// Use the Pimpl idiom to hide the internals.
        class Impl;