#include "author.h"
#include <boost/shared_ptr.hpp>
+#include <boost/scoped_ptr.hpp>
class BufferView;
class LyXRC;
class Language;
class ParIterator;
class ParConstIterator;
+class Messages;
/** The buffer object.
/// Load the autosaved file.
void loadAutoSaveFile();
- /** Reads a file.
+ /** Inserts a file into a document
\param par if != 0 insert the file.
\return \c false if method fails.
*/
- bool readFile(LyXLex &, string const &, Paragraph * par = 0);
+ bool readFile(LyXLex &, string const &, ParagraphList::iterator pit);
+
+ // FIXME: it's very silly to pass a lex in here
+ /// load a new file
+ bool readFile(LyXLex &, string const &);
+
+ /// read the header, returns number of unknown tokens
+ int readHeader(LyXLex & lex);
/** Reads a file without header.
\param par if != 0 insert the file.
\return \c false if file is not completely read.
*/
- bool readLyXformat2(LyXLex &, Paragraph * par = 0);
+ bool readBody(LyXLex &, ParagraphList::iterator pit);
+
+ /// This parses a single token
+ int readParagraph(LyXLex &, string const & token,
+ ParagraphList & pars, ParagraphList::iterator & pit,
+ Paragraph::depth_type & depth);
- /// This parses a single LyXformat-Token.
- bool parseSingleLyXformat2Token(LyXLex &, Paragraph *& par,
- Paragraph *& return_par,
- string const & token, int & pos,
- Paragraph::depth_type & depth,
- LyXFont &);
///
- void insertStringAsLines(Paragraph *&, lyx::pos_type &,
+ void insertStringAsLines(ParagraphList::iterator &, lyx::pos_type &,
LyXFont const &, string const &);
///
- Paragraph * getParFromID(int id) const;
-private:
- /// Parse a single inset.
- void readInset(LyXLex &, Paragraph *& par, int & pos, LyXFont &);
+ ParagraphList::iterator getParFromID(int id) const;
+ /// do we have a paragraph with this id?
+ bool hasParWithID(int id) const;
+
public:
/** Save file.
Takes care of auto-save files and backup file if requested.
bool nice,
bool only_body = false,
bool only_preamble = false);
-#if 0
- /** LaTeX all paragraphs from par to endpar.
- \param \a endpar if == 0 then to the end
- */
- void latexParagraphs(std::ostream & os,
- ParagraphList::iterator par,
- ParagraphList::iterator endpar,
- TexRow & texrow, bool moving_arg = false) const;
-#endif
///
void simpleDocBookOnePar(std::ostream &,
- Paragraph * par, int & desc_on,
- Paragraph::depth_type depth) const ;
+ ParagraphList::iterator par, int & desc_on,
+ Paragraph::depth_type depth) const;
///
- void simpleLinuxDocOnePar(std::ostream & os, Paragraph * par,
- Paragraph::depth_type depth);
+ void simpleLinuxDocOnePar(std::ostream & os,
+ ParagraphList::iterator par,
+ Paragraph::depth_type depth) const;
///
void makeLinuxDocFile(string const & filename,
bool nice, bool only_body = false);
void makeDocBookFile(string const & filename,
bool nice, bool only_body = false);
///
- void sgmlError(Paragraph * par, int pos, string const & message) const;
+ void sgmlError(ParagraphList::iterator par, int pos, string const & message) const;
/// returns the main language for the buffer (document)
Language const * getLanguage() const;
+ /// get l10n translated to the buffers language
+ string const B_(string const & l10n) const;
+
///
int runChktex();
/// return true if the main lyx file does not need saving
///
void changeLanguage(Language const * from, Language const * to);
+
+ ///
+ void updateDocLang(Language const * nlang);
+
///
bool isMultiLingual();
/// need to regenerate .tex ?
DepClean dep_clean_;
- /// the author list
- AuthorList authorlist;
-
/// is save needed
mutable bool lyx_clean;
of the buffers in the list of users to do a #updateLayoutChoice#.
*/
BufferView * users;
+ ///
+ boost::scoped_ptr<Messages> messages_;
public:
///
class inset_iterator {
pointer operator->();
///
- Paragraph * getPar();
+ ParagraphList::iterator getPar() const;
///
lyx::pos_type getPos() const;
///