]> git.lyx.org Git - lyx.git/blobdiff - src/buffer.h
Angus insetindex patch + protect patch from Dekel
[lyx.git] / src / buffer.h
index ad16276e25a19dd8a4101bc768a4245164147a54..598ea56015991c8dd20318aef7555926083617e4 100644 (file)
@@ -37,8 +37,7 @@
 class LyXRC;
 class TeXErrors;
 class LaTeXFeatures;
-
-extern void updateAllVisibleBufferRelatedPopups();
+class auto_mem_buffer;
 
 ///
 struct DEPCLEAN {
@@ -85,12 +84,12 @@ public:
        /// Maybe we know the function already by number...
        bool Dispatch(int ac, string const & argument);
 
+       /// and have an xtl buffer to work with.
+       bool Dispatch(int, auto_mem_buffer &);
+
        /// should be changed to work for a list.
-       void resize() {
-               if (users) {
-                       users->resize();
-               }
-       }
+       void resize();
+       void resizeInsets(BufferView *);
 
        /// Update window titles of all users
        void updateTitles() const;
@@ -133,10 +132,16 @@ public:
        bool parseSingleLyXformat2Token(LyXLex &, LyXParagraph *& par,
                                        LyXParagraph *& return_par,
                                        string const & token, int & pos,
-                                       char & depth, LyXFont &,
-                                       LyXParagraph::footnote_flag &,
-                                       LyXParagraph::footnote_kind &);
-
+                                       char & depth, LyXFont &
+#ifndef NEW_INSETS
+                                       ,LyXParagraph::footnote_flag &,
+                                       LyXParagraph::footnote_kind &
+#endif
+               );
+private:
+       // Parse a single inset.
+       void readInset(LyXLex &, LyXParagraph *& par, int & pos, LyXFont &);
+public:
        /** Save file
            Takes care of auto-save files and backup file if requested.
            Returns true if the save is successful, false otherwise.
@@ -158,7 +163,7 @@ public:
        // if endpar == 0 then to the end
        //
        void latexParagraphs(std::ostream & os, LyXParagraph *par,
-                            LyXParagraph *endpar, TexRow & texrow);
+                            LyXParagraph *endpar, TexRow & texrow) const;
 
        ///
        int runLaTeX();
@@ -173,9 +178,11 @@ public:
        int runChktex();
 
        ///
-       void makeLinuxDocFile(string const & filename, int column);
+       void makeLinuxDocFile(string const & filename,
+                             bool nice, bool only_body = false);
        ///
-       void makeDocBookFile(string const & filename, int column);
+       void makeDocBookFile(string const & filename,
+                            bool nice, bool only_body = false);
 
        /// returns the main language for the buffer (document)
        string GetLanguage() const {
@@ -185,9 +192,6 @@ public:
        ///
        bool isLyxClean() const { return lyx_clean; }
        
-       /// changed Heinrich Bauer, 23/03/98
-       bool isDviClean() const;
-       
         ///
         bool isNwClean() const { return nw_clean; }
        
@@ -208,9 +212,6 @@ public:
                bak_clean = true;
        }
 
-       /// changed Heinrich Bauer, 23/03/98
-       void markDviClean();
-       
         ///
         void markNwClean() { nw_clean = true; }
        
@@ -220,21 +221,22 @@ public:
        ///
        void markDepClean(string const & name);
        
-       ///
-       void markDviDirty();
-       
         ///
         void markNwDirty() { nw_clean = false; }
-       
+
+       ///
+       void setUnnamed(bool flag=true) { unnamed = flag; }
+
+       ///
+       bool isUnnamed() { return unnamed; }
+
        ///
        void markDirty() {
                if (lyx_clean) {
                        lyx_clean = false;
                        updateTitles();
                }
-               dvi_clean_tmpd = false;
-               dvi_clean_orgd = false;
-                nw_clean = false;
+               nw_clean = false;
                bak_clean = false;
                DEPCLEAN * tmp = dep_clean;
                while (tmp) {
@@ -291,7 +293,7 @@ public:
        ///
        string getIncludeonlyList(char delim = ',');
        ///
-       string getBibkeyList(char delim = '|');
+       std::vector<std::pair<string,string> > getBibkeyList();
        ///
        struct TocItem {
                LyXParagraph * par;
@@ -354,16 +356,20 @@ public:
        /// Used when typesetting to place errorboxes.
        TexRow texrow;
 private:
+#ifndef NEW_INSETS
         ///
         void linuxDocHandleFootnote(std::ostream & os,
                                    LyXParagraph * & par, int const depth);
+#endif
         ///
        void DocBookHandleCaption(std::ostream & os, string & inner_tag,
                                  int const depth, int desc_on,
                                  LyXParagraph * & par);
+#ifndef NEW_INSETS
         ///
        void DocBookHandleFootnote(std::ostream & os,
                                   LyXParagraph * & par, int const depth);
+#endif
        ///
         void sgmlOpenTag(std::ostream & os, int depth,
                         string const & latexname) const;
@@ -388,28 +394,18 @@ private:
        void pop_tag(std::ostream & os, char const * tag,
                     int & pos, char stack[5][3]);
 
-#if 0
-       ///
-       void RoffAsciiTable(std::ostream &, LyXParagraph * par);
-#endif
-       
        /// is save needed
        mutable bool lyx_clean;
        
        /// is autosave needed
        mutable bool bak_clean;
        
-       /** do we need to run LaTeX, changed 23/03/98, Heinrich Bauer
-           We have to distinguish between TeX-runs executed in the original
-           directory (in which the original LyX-file resides) and TeX-runs
-           executed in a temporary directory. The first situation is valid
-           for a dvi-export, the latter one for printing or previewing. */
-       bool dvi_clean_orgd;
-       bool dvi_clean_tmpd;
-
         /// do we need to run weave/tangle
         bool nw_clean;
 
+       /// is this a unnamed file (New...)
+       bool unnamed;
+
        /// is regenerating .tex necessary
        DEPCLEAN * dep_clean;