X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.h;h=ae9cbb0ce2d0092e723ca8ba9169401cf0be3408;hb=85a5ea7bfc80e179a61a99f2955455e84d3384cc;hp=3e522952d5d9af4b5d834a2e2826989959254307;hpb=46ab079b9fa9f5057ddccfb4df8c8c6b9c42a71a;p=lyx.git diff --git a/src/buffer.h b/src/buffer.h index 3e522952d5..ae9cbb0ce2 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -10,15 +10,6 @@ * * ====================================================== */ -// Change Log: -// =========== -// 23/03/98 Heinrich Bauer (heinrich.bauer@t-mobil.de) -// Spots marked "changed Heinrich Bauer, 23/03/98" modified due to the -// following bug: dvi file export did not work after printing (or previewing) -// and vice versa as long as the same file was concerned. This happened -// every time the LyX-file was left unchanged between the two actions mentioned -// above. - #ifndef BUFFER_H #define BUFFER_H @@ -27,13 +18,14 @@ #endif #include "LString.h" - -#include "BufferView.h" +#include "undo.h" +#include "undostack.h" #include "lyxvc.h" #include "bufferparams.h" #include "texrow.h" +#include "paragraph.h" - +class BufferView; class LyXRC; class TeXErrors; class LaTeXFeatures; @@ -50,7 +42,7 @@ struct DEPCLEAN { }; /** The buffer object. - The is is the buffer object. It contains all the informations about + This is the buffer object. It contains all the informations about a document loaded into LyX. I am not sure if the class is complete or minimal, probably not. \author Lars Gullik Bjønnes @@ -69,7 +61,7 @@ public: */ explicit Buffer(string const & file, bool b = false); - /// Destrucotr + /// Destructor ~Buffer(); /** Save the buffer's parameters as user default. @@ -83,13 +75,11 @@ public: /** High-level interface to buffer functionality. This function parses a command string and executes it */ - bool Dispatch(string const & command); + bool dispatch(string const & command); /// Maybe we know the function already by number... - bool Dispatch(int ac, string const & argument); + bool dispatch(int ac, string const & argument); - /// Should be changed to work for a list. - void resize(); /// void resizeInsets(BufferView *); @@ -120,27 +110,23 @@ public: \param par if != 0 insert the file. \return \c false if method fails. */ - bool readFile(LyXLex &, LyXParagraph * par = 0); + bool readFile(LyXLex &, Paragraph * par = 0); /** Reads a file without header. \param par if != 0 insert the file. \return \c false if file is not completely read. */ - bool readLyXformat2(LyXLex &, LyXParagraph * par = 0); + bool readLyXformat2(LyXLex &, Paragraph * par = 0); /// This parses a single LyXformat-Token. - bool parseSingleLyXformat2Token(LyXLex &, LyXParagraph *& par, - LyXParagraph *& return_par, + bool parseSingleLyXformat2Token(LyXLex &, Paragraph *& par, + Paragraph *& return_par, string const & token, int & pos, - char & depth, LyXFont & -#ifndef NEW_INSETS - ,LyXParagraph::footnote_flag &, - LyXParagraph::footnote_kind & -#endif - ); + Paragraph::depth_type & depth, + LyXFont &); private: /// Parse a single inset. - void readInset(LyXLex &, LyXParagraph *& par, int & pos, LyXFont &); + void readInset(LyXLex &, Paragraph *& par, int & pos, LyXFont &); public: /** Save file. Takes care of auto-save files and backup file if requested. @@ -156,7 +142,7 @@ public: /// void writeFileAscii(std::ostream &, int); /// - string const asciiParagraph(LyXParagraph const *, + string const asciiParagraph(Paragraph const *, unsigned int linelen) const; /// void makeLaTeXFile(string const & filename, @@ -165,13 +151,13 @@ public: /** LaTeX all paragraphs from par to endpar. \param \a endpar if == 0 then to the end */ - void latexParagraphs(std::ostream & os, LyXParagraph * par, - LyXParagraph * endpar, TexRow & texrow) const; + void latexParagraphs(std::ostream & os, Paragraph * par, + Paragraph * endpar, TexRow & texrow) const; /// - void SimpleDocBookOnePar(std::ostream &, string & extra, - LyXParagraph * par, int & desc_on, - int depth) const ; + void simpleDocBookOnePar(std::ostream &, string & extra, + Paragraph * par, int & desc_on, + Paragraph::depth_type depth) const ; /// int runChktex(); @@ -184,7 +170,7 @@ public: bool nice, bool only_body = false); /// returns the main language for the buffer (document) - Language const * GetLanguage() const; + Language const * getLanguage() const; /// bool isLyxClean() const; /// @@ -202,7 +188,7 @@ public: void markDepClean(string const & name); /// - void setUnnamed(bool flag=true); + void setUnnamed(bool flag = true); /// bool isUnnamed(); @@ -265,8 +251,10 @@ public: std::vector > const getBibkeyList(); /// struct TocItem { + TocItem(Paragraph * p, int d, string const & s) + : par(p), depth(d), str(s) {} /// - LyXParagraph * par; + Paragraph * par; /// int depth; /// @@ -286,7 +274,7 @@ public: BufferView * getUser() const; /// - void ChangeLanguage(Language const * from, Language const * to); + void changeLanguage(Language const * from, Language const * to); /// bool isMultiLingual(); @@ -303,7 +291,7 @@ public: This is a linked list of paragraph, this list holds the whole contents of the document. */ - LyXParagraph * paragraph; + Paragraph * paragraph; /// LyX version control object. LyXVC lyxvc; @@ -322,40 +310,22 @@ public: /// Used when typesetting to place errorboxes. TexRow texrow; private: -#ifndef NEW_INSETS - /// - void linuxDocHandleFootnote(std::ostream & os, - LyXParagraph * & par, int depth); -#endif /// - void DocBookHandleCaption(std::ostream & os, string & inner_tag, - int depth, int desc_on, - LyXParagraph * & par); -#ifndef NEW_INSETS - /// - void DocBookHandleFootnote(std::ostream & os, - LyXParagraph * & par, int depth); -#endif - /// - void sgmlOpenTag(std::ostream & os, int depth, + void docBookHandleCaption(std::ostream & os, string & inner_tag, + Paragraph::depth_type depth, int desc_on, + Paragraph * & par); + /// Open SGML/XML tag. + void sgmlOpenTag(std::ostream & os, Paragraph::depth_type depth, string const & latexname) const; - /// - void sgmlCloseTag(std::ostream & os, int depth, + /// Closes SGML/XML tag. + void sgmlCloseTag(std::ostream & os, Paragraph::depth_type depth, string const & latexname) const; /// - void LinuxDocError(LyXParagraph * par, int pos, + void linuxDocError(Paragraph * par, int pos, string const & message); /// - void SimpleLinuxDocOnePar(std::ostream & os, LyXParagraph * par, - int desc_on, int depth); - - /// LinuxDoc. - void push_tag(std::ostream & os, string const & tag, - int & pos, char stack[5][3]); - - /// LinuxDoc. - void pop_tag(std::ostream & os, string const & tag, - int & pos, char stack[5][3]); + void simpleLinuxDocOnePar(std::ostream & os, Paragraph * par, + Paragraph::depth_type depth); /// is save needed mutable bool lyx_clean; @@ -400,23 +370,19 @@ public: /// inset_iterator() : par(0) /*, it(0)*/ {} // - inset_iterator(LyXParagraph * paragraph) : par(paragraph) { - SetParagraph(); + inset_iterator(Paragraph * paragraph) : par(paragraph) { + setParagraph(); } /// - inset_iterator(LyXParagraph * paragraph, - LyXParagraph::size_type pos); + inset_iterator(Paragraph * paragraph, + Paragraph::size_type pos); /// inset_iterator & operator++() { // prefix ++ if (par) { ++it; if (it == par->inset_iterator_end()) { -#ifndef NEW_INSETS - par = par->next_; -#else par = par->next(); -#endif - SetParagraph(); + setParagraph(); } } return *this; @@ -427,12 +393,8 @@ public: if (par) { ++it; if (it == par->inset_iterator_end()) { -#ifndef NEW_INSETS - par = par->next_; -#else par = par->next(); -#endif - SetParagraph(); + setParagraph(); } } return tmp; @@ -441,20 +403,20 @@ public: Inset * operator*() { return *it; } /// - LyXParagraph * getPar() { return par; } + Paragraph * getPar() { return par; } /// - LyXParagraph::size_type getPos() const { return it.getPos(); } + Paragraph::size_type getPos() const { return it.getPos(); } /// friend bool operator==(inset_iterator const & iter1, inset_iterator const & iter2); private: /// - void SetParagraph(); + void setParagraph(); /// - LyXParagraph * par; + Paragraph * par; /// - LyXParagraph::inset_iterator it; + Paragraph::inset_iterator it; }; /// @@ -483,15 +445,7 @@ void Buffer::delUser(BufferView *) inline -void Buffer::redraw() -{ - users->redraw(); - users->fitCursor(users->text); -} - - -inline -Language const * Buffer::GetLanguage() const +Language const * Buffer::getLanguage() const { return params.language; } @@ -604,6 +558,7 @@ bool operator!=(Buffer::TocItem const & a, Buffer::TocItem const & b) { // No need to compare depth. } + /// inline bool operator==(Buffer::inset_iterator const & iter1, @@ -612,6 +567,7 @@ bool operator==(Buffer::inset_iterator const & iter1, && (iter1.par == 0 || iter1.it == iter2.it); } + /// inline bool operator!=(Buffer::inset_iterator const & iter1, @@ -619,4 +575,3 @@ bool operator!=(Buffer::inset_iterator const & iter1, return !(iter1 == iter2); } #endif -