]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiImplementation.h
some remnaming
[lyx.git] / src / frontends / qt4 / GuiImplementation.h
index 312227dc0c0a8f71f0faf828812288b24dcb790f..b88c2f211e5325d6fed2f79c654677704a2714fd 100644 (file)
 
 #include "frontends/Gui.h"
 
-#include <boost/shared_ptr.hpp>
+#include <QObject>
 
 #include <map>
 
-class LyXView;
-
 namespace lyx {
 namespace frontend {
 
-class GuiWorkArea;
-class GuiView;
+class GuiViewBase;
+class LyXView;
 
 /**
  * The GuiImplementation class is the interface to all Qt4 components.
  */
-class GuiImplementation: public Gui
+class GuiImplementation : public QObject, public Gui
 {
+       Q_OBJECT
+
 public:
        GuiImplementation();
        virtual ~GuiImplementation() {}
 
-       int newView(unsigned int width, unsigned int height);
-       LyXView& view(int id);
-       void destroyView(int id);
-       int newWorkArea(unsigned int width, unsigned int height, int view_id);
-       int newWorkArea(int w, int h);
-       WorkArea& workArea(int id);
-       void destroyWorkArea(int id);
+       virtual LyXView& createRegisteredView();
+       virtual bool closeAllViews();
+       virtual bool unregisterView(int id);
 
+       virtual LyXView& view(int id) const;
 
 private:
-       ///
-       std::map<int, boost::shared_ptr<GuiView> > views_;
-       ///
-       std::map<int, boost::shared_ptr<GuiWorkArea> > work_areas_;
-       ///
-       size_t max_view_id_;
-       ///
-       size_t max_wa_id_;
+
+       /// Multiple views container.
+       /**
+       * Warning: This must not be a smart pointer as the destruction of the
+       * object is handled by Qt when the view is closed
+       * \sa Qt::WA_DeleteOnClose attribute.
+       */
+       std::map<int, GuiViewBase *> views_;
 };
 
 } // namespace frontend