]> git.lyx.org Git - lyx.git/blobdiff - src/buffer.h
Dekels tabular/textinset patches
[lyx.git] / src / buffer.h
index ad3249b57959c7ed310d042e87de3c2d969a62bb..3a6465b3b1c3f8d3d9dcd4405be075ddf29130dc 100644 (file)
@@ -38,6 +38,7 @@ class LyXRC;
 class TeXErrors;
 class LaTeXFeatures;
 class auto_mem_buffer;
+class Language;
 
 ///
 struct DEPCLEAN {
@@ -106,7 +107,7 @@ public:
        ///
        void redraw() {
                users->redraw(); 
-               users->fitCursor(); 
+               users->fitCursor(users->text); 
                //users->updateScrollbar();
        }
 
@@ -166,10 +167,9 @@ public:
                             LyXParagraph * endpar, TexRow & texrow) const;
 
         ///
-        int runLiterate();
-
-        ///
-        int buildProgram();
+       void SimpleDocBookOnePar(std::ostream &, string & extra,
+                                LyXParagraph * par, int & desc_on,
+                                int depth) const ;
 
        ///
        int runChktex();
@@ -182,16 +182,13 @@ public:
                             bool nice, bool only_body = false);
 
        /// returns the main language for the buffer (document)
-       string const GetLanguage() const {
+       Language const * GetLanguage() const {
                return params.language;
        }
        
        ///
        bool isLyxClean() const { return lyx_clean; }
        
-        ///
-        bool isNwClean() const { return nw_clean; }
-       
        ///
        bool isBakClean() const { return bak_clean; }
        
@@ -209,18 +206,12 @@ public:
                bak_clean = true;
        }
 
-        ///
-        void markNwClean() { nw_clean = true; }
-       
        ///
        void markBakClean() { bak_clean = true; }
        
        ///
        void markDepClean(string const & name);
        
-        ///
-        void markNwDirty() { nw_clean = false; }
-
        ///
        void setUnnamed(bool flag=true) { unnamed = flag; }
 
@@ -233,7 +224,6 @@ public:
                        lyx_clean = false;
                        updateTitles();
                }
-               nw_clean = false;
                bak_clean = false;
                DEPCLEAN * tmp = dep_clean;
                while (tmp) {
@@ -251,7 +241,7 @@ public:
        string const getLatexName(bool no_path = true) const;
 
        /// Change name of buffer. Updates "read-only" flag.
-       void fileName(string const & newfile);
+       void setFileName(string const & newfile);
 
        /// Name of the document's parent
        void setParentName(string const &);
@@ -358,16 +348,16 @@ private:
 #ifndef NEW_INSETS
         ///
         void linuxDocHandleFootnote(std::ostream & os,
-                                   LyXParagraph * & par, int const depth);
+                                   LyXParagraph * & par, int depth);
 #endif
         ///
        void DocBookHandleCaption(std::ostream & os, string & inner_tag,
-                                 int const depth, int desc_on,
+                                 int depth, int desc_on,
                                  LyXParagraph * & par);
 #ifndef NEW_INSETS
         ///
        void DocBookHandleFootnote(std::ostream & os,
-                                  LyXParagraph * & par, int const depth);
+                                  LyXParagraph * & par, int depth);
 #endif
        ///
         void sgmlOpenTag(std::ostream & os, int depth,
@@ -380,11 +370,7 @@ private:
                           string const & message);
         ///
        void SimpleLinuxDocOnePar(std::ostream & os, LyXParagraph * par,
-                                 int desc_on, int const depth);
-        ///
-       void SimpleDocBookOnePar(std::ostream &, string & extra,
-                                LyXParagraph * par, int & desc_on,
-                                int const depth);
+                                 int desc_on, int depth);
 
        /// LinuxDoc.
        void push_tag(std::ostream & os, string const & tag,
@@ -400,9 +386,6 @@ private:
        /// is autosave needed
        mutable bool bak_clean;
        
-        /// do we need to run weave/tangle
-        bool nw_clean;
-
        /// is this a unnamed file (New...)
        bool unnamed;
 
@@ -431,6 +414,13 @@ public:
        ///
        class inset_iterator {
        public:
+               typedef std::input_iterator_tag iterator_category;
+               typedef Inset value_type;
+               typedef ptrdiff_t difference_type;
+               typedef Inset * pointer;
+               typedef Inset & reference;
+               
+               
                ///
                inset_iterator() : par(0) /*, it(0)*/ {}
                //
@@ -441,7 +431,7 @@ public:
                inset_iterator(LyXParagraph * paragraph,
                               LyXParagraph::size_type pos);
                ///
-               inset_iterator & operator++() {
+               inset_iterator & operator++() { // prefix ++
                        if (par) {
                                ++it;
                                if (it == par->inset_iterator_end()) {
@@ -452,11 +442,24 @@ public:
                        return *this;
                }
                ///
-               Inset * operator*() {return *it; }
+               inset_iterator operator++(int) { // postfix ++
+                       inset_iterator tmp(par, it.getPos());
+                       if (par) {
+                               ++it;
+                               if (it == par->inset_iterator_end()) {
+                                       par = par->next;
+                                       SetParagraph();
+                               }
+                       }
+                       return tmp;
+               }
+               ///
+               Inset * operator*() { return *it; }
+               
                ///
                LyXParagraph * getPar() { return par; }
                ///
-               LyXParagraph::size_type getPos() {return it.getPos(); }
+               LyXParagraph::size_type getPos() const { return it.getPos(); }
                ///
                friend
                bool operator==(inset_iterator const & iter1,