#define LYXVIEW_H
#include "frontends/Application.h"
+#include "frontends/Delegates.h"
#include "support/docstring.h"
-#include <boost/signal.hpp>
-#include <boost/signals/trackable.hpp>
#include <boost/noncopyable.hpp>
#include <vector>
class Dialogs;
class WorkArea;
-class Toolbar;
-class Toolbars;
/**
* LyXView - main LyX window
* Additionally we would like to support multiple views
* in a single LyXView.
*/
-class LyXView : public boost::signals::trackable, boost::noncopyable {
+class LyXView : boost::noncopyable,
+ public GuiBufferViewDelegate, public GuiBufferDelegate
+{
public:
///
LyXView(int id);
virtual void saveGeometry() = 0;
/// show busy cursor
- virtual void busy(bool) = 0;
-
- virtual Toolbar * makeToolbar(ToolbarInfo const & tbinfo, bool newline) = 0;
+ virtual void setBusy(bool) = 0;
//@{ generic accessor functions
Buffer const * buffer() const;
///
- void openLayoutList();
+ virtual void openLayoutList() = 0;
///
- bool isToolbarVisible(std::string const & id);
+ virtual bool isToolbarVisible(std::string const & id) = 0;
///
virtual void showMiniBuffer(bool visible) = 0;
virtual void openMenu(docstring const & name) = 0;
void setBuffer(Buffer * b); ///< \c Buffer to set.
/// updates the possible layouts selectable
- void updateLayoutChoice();
+ virtual void updateLayoutChoice() = 0;
/// update the toolbar
- void updateToolbars();
+ virtual void updateToolbars() = 0;
/// get toolbar info
- ToolbarInfo * getToolbarInfo(std::string const & name);
+ virtual ToolbarInfo * getToolbarInfo(std::string const & name) = 0;
/// toggle toolbar state
- void toggleToolbarState(std::string const & name, bool allowauto);
+ virtual void toggleToolbarState(std::string const & name, bool allowauto) = 0;
/// update the status bar
virtual void updateStatusBar() = 0;
/// show the error list to the user
void showErrorList(std::string const &);
-protected:
+
+ //
+ // GuiBufferDelegate
+ //
+ /// This function is called when the buffer structure is changed.
+ void structureChanged() { updateToc(); }
+ /// This function is called when some parsing error shows up.
+ void errors(std::string const & err) { showErrorList(err); }
+ /// This function is called when the buffer readonly status change.
+ void setReadOnly(bool on);
+ /// Update window titles of all users.
+ void updateTitles() { updateWindowTitle(); }
+ /// Reset autosave timers for all users.
+ void resetAutosaveTimers() { resetAutosaveTimer(); }
+
/// connect to signals in the given BufferView
void connectBufferView(BufferView & bv);
/// disconnect from signals in the given BufferView
/// disconnect from signals in the given buffer
void disconnectBuffer();
- /// view's toolbar
- Toolbars * toolbars_;
-
private:
/**
* setWindowTitle - set title of window
/// dialogs for this view
Dialogs * dialogs_;
- /// buffer structure changed signal connection
- boost::signals::connection bufferStructureChangedConnection_;
- /// embedded file change signal connection
- boost::signals::connection bufferEmbeddingChangedConnection_;
- /// buffer errors signal connection
- boost::signals::connection errorsConnection_;
- /// buffer messages signal connection
- boost::signals::connection messageConnection_;
- /// buffer busy status signal connection
- boost::signals::connection busyConnection_;
- /// buffer title changed signal connection
- boost::signals::connection titleConnection_;
- /// buffer reset timers signal connection
- boost::signals::connection timerConnection_;
- /// buffer readonly status changed signal connection
- boost::signals::connection readonlyConnection_;
-
- /// BufferView messages signal connection
- //@{
- boost::signals::connection message_connection_;
- boost::signals::connection show_dialog_connection_;
- boost::signals::connection show_dialog_with_data_connection_;
- boost::signals::connection show_inset_dialog_connection_;
- boost::signals::connection update_dialog_connection_;
- boost::signals::connection layout_changed_connection_;
- //@}
-
/// Bind methods for BufferView messages signal connection
//@{
void showDialog(std::string const & name);
std::string const & data);
//@}
- /// notify readonly status
- void showReadonly(bool);
-
protected:
///
void updateToc();