X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.h;h=a5932de51071c22e8cfed7d5cee9acbf7bf2bd37;hb=9e5bd1d609877e602cb697bc695d410e2ab48e0d;hp=95cfdb8d7d322599f90e76d7441d283c2072fe05;hpb=53b464c5e95ed708e9464db0499826894be450fd;p=lyx.git diff --git a/src/buffer.h b/src/buffer.h index 95cfdb8d7d..a5932de510 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -1,14 +1,14 @@ // -*- C++ -*- /* This file is part of * ====================================================== -* -* LyX, The Document Processor -* Copyright (C) 1995 Matthias Ettrich -* -* This file is Copyleft (C) 1996 -* Lars Gullik Bjønnes -* -* ====================================================== */ + * + * LyX, The Document Processor + * Copyright 1995 Matthias Ettrich + * + * This file is Copyleft 1996 + * Lars Gullik Bjønnes + * + * ====================================================== */ // Change Log: // =========== @@ -26,14 +26,12 @@ #pragma interface #endif -#include "undo.h" +#include "LString.h" + #include "BufferView.h" #include "lyxvc.h" #include "bufferparams.h" #include "texrow.h" -#include "lyxtext.h" -#include "support/filetools.h" -#include "lyx_gui_misc.h" class LyXRC; @@ -49,7 +47,7 @@ struct DEPCLEAN { /// string master; /// - DEPCLEAN *next; + DEPCLEAN * next; }; /** The buffer object. @@ -62,7 +60,7 @@ public: /**@name Constructors and destructor */ //@{ /// - Buffer(string const & file, LyXRC * lyxrc = 0, bool b = false); + explicit Buffer(string const & file, bool b = false); /// ~Buffer(); @@ -82,24 +80,23 @@ public: /** high-level interface to buffer functionality This function parses a command string and executes it */ - void Dispatch(const string & command); + void Dispatch(string const & command); /// Maybe we know the function already by number... - void Dispatch(int ac, const string & argument); + void Dispatch(int ac, string const & argument); /// should be changed to work for a list. - void resize() - { - if (users) { - users->resize(); - } + void resize() { + if (users) { + users->resize(); } + } /// Update window titles of all users - void updateTitles(); + void updateTitles() const; /// Reset autosave timers for all users - void resetAutosaveTimers(); + void resetAutosaveTimers() const; /** Adds the BufferView to the users list. Later this func will insert the BufferView into a real list, @@ -110,7 +107,7 @@ public: /** Removes the BufferView from the users list. Since we only can have one at the moment, we just reset it. */ - void delUser(BufferView *){ users = 0; } + void delUser(BufferView *) { users = 0; } /// void redraw() { @@ -119,9 +116,6 @@ public: users->updateScrollbar(); } - /// Open and lock an updatable inset - //void open_new_inset(UpdatableInset *); - /// void loadAutoSaveFile(); @@ -135,11 +129,22 @@ public: If par is given, the file is inserted. */ bool readLyXformat2(LyXLex &, LyXParagraph * par = 0); - /// Inserts a lyx file at cursor position. Returns false if it fails. - //bool insertLyXFile(string const & filename); - + /* This parses a single LyXformat-Token */ + bool parseSingleLyXformat2Token(LyXLex &, LyXParagraph *& par, + LyXParagraph *& return_par, + string const & token, int & pos, + char & depth, LyXFont &, + LyXParagraph::footnote_flag &, + LyXParagraph::footnote_kind &); + + /** Save file + Takes care of auto-save files and backup file if requested. + Returns true if the save is successful, false otherwise. + */ + bool save() const; + /// Write file. Returns false if unsuccesful. - bool writeFile(string const &, bool); + bool writeFile(string const &, bool) const; /// void writeFileAscii(string const & , int); @@ -175,7 +180,7 @@ public: bool isLyxClean() const { return lyx_clean; } /// changed Heinrich Bauer, 23/03/98 - bool isDviClean(); + bool isDviClean() const; /// bool isNwClean() const { return nw_clean; } @@ -187,7 +192,7 @@ public: bool isDepClean(string const & name) const; /// - void markLyxClean() { + void markLyxClean() const { if (!lyx_clean) { lyx_clean = true; updateTitles(); @@ -235,12 +240,9 @@ public: /// string const & fileName() const { return filename; } - /// A transformed version of the file name, adequate for LaTeX - /* The path is stripped if no_path is true (default) */ - string getLatexName(bool no_path = true) const { - return ChangeExtension(MakeLatexName(filename), - ".tex", no_path); - } + /** A transformed version of the file name, adequate for LaTeX + The path is stripped if no_path is true (default) */ + string getLatexName(bool no_path = true) const; /// Change name of buffer. Updates "read-only" flag. void fileName(string const & newfile); @@ -249,19 +251,10 @@ public: void setParentName(string const &); /// Is buffer read-only? - bool isReadonly() { return read_only; } + bool isReadonly() const { return read_only; } /// Set buffer read-only flag - void setReadonly(bool flag = true) { - if (read_only != flag) { - read_only = flag; - updateTitles(); - updateAllVisibleBufferRelatedPopups(); - } - if (read_only) { - WarnReadonly(filename); - } - } + void setReadonly(bool flag = true); /// returns true if the buffer contains a LaTeX document bool isLatex() const; @@ -269,7 +262,8 @@ public: bool isLinuxDoc() const; /// returns true if the buffer contains a DocBook document bool isDocBook() const; - /// returns true if the buffer contains either a LinuxDoc or DocBook document + /** returns true if the buffer contains either a LinuxDoc + or DocBook document */ bool isSGML() const; /// returns true if the buffer contains a Wed document bool isLiterate() const; @@ -277,30 +271,16 @@ public: /// void setPaperStuff(); -#if 0 - /// - void setOldPaperStuff(); -#endif - /** Validate a buffer for LaTeX. This validates the buffer, and returns a struct for use by - makeLaTeX and others. Its main use is to figure out what commands - and packages need to be included in the LaTeX file. It (should) - also check that the needed constructs are there (i.e. that the \refs - points to coresponding \labels). It should perhaps inset "error" - insets to help the user correct obvious mistakes. + makeLaTeX and others. Its main use is to figure out what + commands and packages need to be included in the LaTeX file. + It (should) also check that the needed constructs are there + (i.e. that the \refs points to coresponding \labels). It + should perhaps inset "error" insets to help the user correct + obvious mistakes. */ - void validate(LaTeXFeatures &); //the correct parameters to be - //included later - - /** Insert an inset into the buffer - Insert inset into buffer, placing it in a layout of lout, - if no_table make sure that it doesn't end up in a table. */ - //void insertInset(Inset *, string const & lout = string(), - // bool no_table = false); - - /// - //void setCursorFromRow (int); + void validate(LaTeXFeatures &) const; /// string getIncludeonlyList(char delim = ','); @@ -308,16 +288,16 @@ public: string getReferenceList(char delim = '|'); /// string getBibkeyList(char delim = '|'); - /// - //bool gotoLabel(string const &); - - /// removes all autodeletable insets - //bool removeAutoInsets(); /** This will clearly have to change later. Later we can have more than one user per buffer. */ BufferView * getUser() const { return users; } + /// + void ChangeLanguage(Language const * from, Language const * to); + /// + bool isMultiLingual(); + //@} /// Does this mean that this is buffer local? @@ -349,51 +329,50 @@ public: /// Used when typesetting to place errorboxes. TexRow texrow; private: - /// - //void insertErrors(TeXErrors &); - /// - void linuxDocHandleFootnote(ostream & os, + void linuxDocHandleFootnote(std::ostream & os, LyXParagraph * & par, int const depth); /// - void DocBookHandleCaption(ostream & os, string & inner_tag, + void DocBookHandleCaption(std::ostream & os, string & inner_tag, int const depth, int desc_on, LyXParagraph * & par); /// - void DocBookHandleFootnote(ostream & os, + void DocBookHandleFootnote(std::ostream & os, LyXParagraph * & par, int const depth); /// - void sgmlOpenTag(ostream & os, int depth, + void sgmlOpenTag(std::ostream & os, int depth, string const & latexname) const; /// - void sgmlCloseTag(ostream & os, int depth, + void sgmlCloseTag(std::ostream & os, int depth, string const & latexname) const; /// void LinuxDocError(LyXParagraph * par, int pos, char const * message); /// - void SimpleLinuxDocOnePar(ostream & os, LyXParagraph * par, + void SimpleLinuxDocOnePar(std::ostream & os, LyXParagraph * par, int desc_on, int const depth); /// - void SimpleDocBookOnePar(string & file, string & extra, + void SimpleDocBookOnePar(std::ostream &, string & extra, LyXParagraph * par, int & desc_on, int const depth); /// LinuxDoc. - void push_tag(ostream & os, char const * tag, + void push_tag(std::ostream & os, char const * tag, int & pos, char stack[5][3]); /// LinuxDoc. - void pop_tag(ostream & os, char const * tag, + void pop_tag(std::ostream & os, char const * tag, int & pos, char stack[5][3]); - - /// - void RoffAsciiTable(ostream &, LyXParagraph * par); +#if 0 + /// + void RoffAsciiTable(std::ostream &, LyXParagraph * par); +#endif + /// is save needed - bool lyx_clean; + mutable bool lyx_clean; /// is autosave needed - bool bak_clean; + 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 @@ -426,7 +405,6 @@ private: of the buffers in the list of users to do a updateLayoutChoice. */ BufferView * users; - };