]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetgraphics.h
fix #832
[lyx.git] / src / insets / insetgraphics.h
index 62a6216f86f2be3cb73cb2815af350b84023ffe9..2acaa173d1cef1fdd7752023d47b7ccf055b3501 100644 (file)
@@ -1,32 +1,23 @@
 // -*- C++ -*-
-/* This file is part of
- * ======================================================
- *
- *           LyX, The Document Processor
- *
- *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2001 the LyX Team.
+/**
+ * \file insetgraphics.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
  * \author Baruch Even
- * \author Herbert Voss <voss@lyx.org>
- * ====================================================== */
+ * \author Herbert Voss
+ *
+ * Full author contact details are available in file CREDITS
+ */
 
 #ifndef INSET_GRAPHICS_H
 #define INSET_GRAPHICS_H
 
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
 #include "insets/inset.h"
 #include "insets/insetgraphicsParams.h"
 
-// We need a signal here to hide an active dialog when we are deleted.
-#include <boost/signals/signal0.hpp>
 #include <boost/signals/trackable.hpp>
-
-#include <memory> // auto_ptr
+#include <boost/scoped_ptr.hpp>
 
 class Dialogs;
 class LaTeXFeatures;
@@ -42,17 +33,15 @@ public:
        ///
        ~InsetGraphics();
        ///
+       virtual dispatch_result localDispatch(FuncRequest const & cmd);
+       ///
        int ascent(BufferView *, LyXFont const &) const;
        ///
        int descent(BufferView *, LyXFont const &) const;
        ///
        int width(BufferView *, LyXFont const &) const;
        ///
-       void draw(BufferView *, LyXFont const &, int, float &, bool) const;
-       ///
-       void edit(BufferView *, int, int, mouse_button::state);
-       ///
-       void edit(BufferView * bv, bool front = true);
+       void draw(BufferView *, LyXFont const &, int, float &) const;
        ///
        EDITABLE editable() const;
        ///
@@ -93,12 +82,13 @@ public:
        /// Get the inset parameters, used by the GUIndependent dialog.
        InsetGraphicsParams const & params() const;
 
-       /** This signal is connected by our dialog and called when the inset
-           is deleted.
-       */
-       boost::signal0<void> hideDialog;
-
 private:
+       /// Returns the cached BufferView.
+       BufferView * view() const;
+
+       ///
+       friend class InsetGraphicsMailer;
+
        /// Is the image ready to draw, or should we display a message instead?
        bool imageIsDrawable() const;
 
@@ -109,8 +99,6 @@ private:
 
        /// Read the inset native format
        void readInsetGraphics(LyXLex & lex);
-       /// Read the FigInset file format
-       void readFigInset(LyXLex & lex);
 
        /// Get the status message, depends on the image loading status.
        string const statusMessage() const;
@@ -128,11 +116,32 @@ private:
        /// The cached variables
        class Cache;
        friend class Cache;
-       /** Can change the contents of the cache, but not the pointer.
-        *  Use std::auto_ptr not boost::scoped_ptr so we do not have to define
-        *  Cache in advance.
-        */
-       std::auto_ptr<Cache> const cache_;
+       /// The pointer never changes although *cache_'s contents may.
+       boost::scoped_ptr<Cache> const cache_;
+};
+
+
+#include "mailinset.h"
+
+class InsetGraphicsMailer : public MailInset {
+public:
+       ///
+       InsetGraphicsMailer(InsetGraphics & inset);
+       ///
+       virtual InsetBase & inset() const { return inset_; }
+       ///
+       virtual string const & name() const { return name_; }
+       ///
+       virtual string const inset2string() const;
+       ///
+       static void string2params(string const &, InsetGraphicsParams &);
+       ///
+       static string const params2string(InsetGraphicsParams const &);
+private:
+       ///
+       static string const name_;
+       ///
+       InsetGraphics & inset_;
 };
 
 #endif