]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/LyXView.h
Fix doubling of bibtex and index alternatives everytime preferences are saved.
[lyx.git] / src / frontends / LyXView.h
index 1cf209bdf66d953554eb061a021135a14d93d9ba..f084449b5e809fe001fa0b9a7a8f0a7d59133f60 100644 (file)
@@ -4,7 +4,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author John Levon
  *
  * Full author contact details are available in file CREDITS.
@@ -13,7 +13,6 @@
 #ifndef LYXVIEW_H
 #define LYXVIEW_H
 
-#include "frontends/Delegates.h"
 #include "support/strfwd.h"
 
 namespace lyx {
@@ -22,6 +21,7 @@ namespace support { class FileName; }
 
 class Buffer;
 class BufferView;
+class Cursor;
 class FuncStatus;
 class FuncRequest;
 class Inset;
@@ -42,7 +42,6 @@ namespace frontend {
  * in a single LyXView.
  */
 class LyXView
-       : public GuiBufferViewDelegate, public GuiBufferDelegate
 {
 public:
        ///
@@ -51,8 +50,6 @@ public:
        virtual ~LyXView() {}
        ///
        virtual int id() const = 0;
-       ///
-       virtual void close() = 0;
 
        /// show busy cursor
        virtual void setBusy(bool) = 0;
@@ -67,67 +64,38 @@ public:
        virtual Buffer const * buffer() const = 0;
        /// set a buffer to the current workarea.
        virtual void setBuffer(Buffer * b) = 0; ///< \c Buffer to set.
+       ///
+       virtual bool closeBuffer() = 0;
+
+       /// load a document into the current workarea.
+       virtual Buffer * loadDocument(
+               support::FileName const &  name, ///< File to load.
+               bool tolastfiles = true  ///< append to the "Open recent" menu?
+               ) = 0;
+       ///
+       virtual void newDocument(std::string const & filename,
+               bool fromTemplate) = 0;
 
        //@}
 
-       /// updates the possible layouts selectable
-       virtual void updateLayoutChoice(bool force) = 0;
-       /// update the toolbar
-       virtual void updateToolbars() = 0;
-       /// update the status bar
-       virtual void updateStatusBar() = 0;
        /// display a message in the view
        virtual void message(docstring const &) = 0;
 
        ///
-       virtual FuncStatus getStatus(FuncRequest const & cmd) = 0;
-       /// dispatch to current BufferView
-       virtual void dispatch(FuncRequest const & cmd) = 0;
-
-       /** redraw \c inset in all the BufferViews in which it is currently
-        *  visible. If successful return a pointer to the owning Buffer.
-        */
-       virtual Buffer const * updateInset(Inset const *) = 0;
-
-       /// returns true if this view has the focus.
-       virtual bool hasFocus() const = 0;
+       virtual bool getStatus(FuncRequest const & cmd, FuncStatus & flag) = 0;
+       /// dispatch command.
+       /// \return true if the \c FuncRequest has been dispatched.
+       virtual bool dispatch(FuncRequest const & cmd) = 0;
 
        ///
        virtual void restartCursor() = 0;
-       
-       //
-       // GuiBufferDelegate
-       //
-       virtual void errors(std::string const &) = 0;
-
-
-       //
-       // This View's Dialogs
-       //
-       
-       /// Hide all visible dialogs
-       virtual void hideAll() const = 0;
-
-       /** \param name == "bibtex", "citation" etc; an identifier used to
-           launch a particular dialog.
-           \param data is a string representation of the Inset contents.
-           It is often little more than the output from Inset::write.
-           It is passed to, and parsed by, the frontend dialog.
-           Several of these dialogs do not need any data,
-           so it defaults to string().
-           \param inset ownership is _not_ passed to the frontend dialog.
-           It is stored internally and used by the kernel to ascertain
-           what to do with the FuncRequest dispatched from the frontend
-           dialog on 'Apply'; should it be used to create a new inset at
-           the current cursor position or modify an existing, 'open' inset?
-       */
-       virtual void showDialog(std::string const & name,
-               std::string const & data, Inset * inset = 0) = 0;
 
-       ///
-       virtual void disconnectDialog(std::string const & name) = 0;
-       ///
-       virtual Inset * getOpenInset(std::string const & name) const = 0;
+       /// Update the completion popup and the inline completion state.
+       /// If \c start is true, then a new completion might be started.
+       /// If \c keep is true, an active completion will be kept active
+       /// even though the cursor moved. The update flags of \c cur might
+       /// be changed.
+       virtual void updateCompletion(Cursor & cur, bool start, bool keep) = 0;
 
 private:
        /// noncopyable