]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/LyXView.h
Embedding: add embedCB checkboxes to IncludeUi and ExternalUi
[lyx.git] / src / frontends / LyXView.h
index d73677db1ab438c1007c5e1820a144df58fb68c1..db9f33fb20ff5ce9914df7e8cb8dd145868a9d54 100644 (file)
 #ifndef LYXVIEW_H
 #define LYXVIEW_H
 
-#include "frontends/Delegates.h"
 #include "support/strfwd.h"
 
-#include <string>
-
 namespace lyx {
 
 namespace support { class FileName; }
 
 class Buffer;
 class BufferView;
+class FuncStatus;
 class FuncRequest;
 class Inset;
 
 namespace frontend {
 
-class Dialogs;
-
 /**
  * LyXView - main LyX window
  *
@@ -45,26 +41,16 @@ class Dialogs;
  * in a single LyXView.
  */
 class LyXView
-       : public GuiBufferViewDelegate, public GuiBufferDelegate
 {
 public:
        ///
-       LyXView(int id) : id_(id) {}
+       LyXView() {}
        ///
        virtual ~LyXView() {}
        ///
-       int id() const { return id_; }
+       virtual int id() const = 0;
        ///
        virtual void close() = 0;
-       ///
-       virtual void setFocus() = 0;
-
-       /**
-        * This is called after the concrete view has been created.
-        * We have to have the toolbar and the other stuff created
-        * before we can populate it with this call.
-        */
-       virtual void init() = 0;
 
        /// show busy cursor
        virtual void setBusy(bool) = 0;
@@ -79,112 +65,30 @@ 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 isToolbarVisible(std::string const & id) = 0;
+       virtual bool closeBuffer() = 0;
+       ///
+       virtual void newDocument(std::string const & filename,
+               bool fromTemplate) = 0;
 
        //@}
 
-       /// load a buffer into the current workarea.
-       virtual Buffer * loadLyXFile(support::FileName const &  name, ///< File to load.
-               bool tolastfiles = true) = 0;  ///< append to the "Open recent" menu?
-
-       /// 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;
 
-       /// 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 FuncStatus getStatus(FuncRequest const & cmd) = 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
-       //
-       
-       /** Check the status of all visible dialogs and disable or reenable
-        *  them as appropriate.
-        *
-        *  Disabling is needed for example when a dialog is open and the
-        *  cursor moves to a position where the corresponding inset is not
-        *  allowed.
-        */
-       virtual void checkStatus() = 0;
-
-       /// Are the tooltips on or off?
-       virtual bool tooltipsEnabled() = 0;
-
-       /// Hide all visible dialogs
-       virtual void hideAll() const = 0;
-       /// Hide any dialogs that require a buffer for them to operate
-       virtual void hideBufferDependent() const = 0;
-       /** Update visible, buffer-dependent dialogs
-           If the bool is true then a buffer change has occurred
-           else it is still the same buffer.
-        */
-       virtual void updateBufferDependent(bool) 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 = std::string(), Inset * inset = 0) = 0;
-
-       /** \param name == "citation", "bibtex" etc; an identifier used
-           to update the contents of a particular dialog with \param data.
-           See the comments to 'show', above.
-       */
-       virtual void updateDialog(std::string const & name, std::string const & data) = 0;
-
-       /// Is the dialog currently visible?
-       virtual bool isDialogVisible(std::string const & name) const = 0;
-
-       /** All Dialogs of the given \param name will be closed if they are
-           connected to the given \param inset.
-       */
-       virtual void hideDialog(std::string const & name, Inset * inset) = 0;
-       ///
-       virtual void disconnectDialog(std::string const & name) = 0;
-       ///
-       virtual Inset * getOpenInset(std::string const & name) const = 0;
 
 private:
        /// noncopyable
        LyXView(LyXView const &);
        void operator=(LyXView const &);
-
-       ///
-       int id_;
 };
 
 } // namespace frontend