]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetExternal.h
Check character encodability with pass-thru in command insets
[lyx.git] / src / insets / InsetExternal.h
index 00546faf80c2e0847a7e21a10ef858bd2cb620eb..75b7f70ffa5f9d2690047422fec1145288552c13 100644 (file)
 #include "ExternalTemplate.h"
 
 #include "support/FileName.h"
-
-#include <boost/scoped_ptr.hpp>
-#include <boost/signals/trackable.hpp>
+#include "support/unique_ptr.h"
 
 
 namespace lyx {
 
-namespace support {
-class TempFile;
-}
-
 namespace external {
 
 /** No two InsetExternalParams variables can have the same temporary file.
@@ -45,7 +39,7 @@ public:
        TempName & operator=(TempName const &);
        support::FileName operator()() const;
 private:
-       support::TempFile * tempfile_;
+       support::FileName tempname_;
 };
 
 } // namespace external
@@ -94,7 +88,7 @@ private:
 class RenderBase;
 
 ///
-class InsetExternal : public Inset, public boost::signals::trackable
+class InsetExternal : public Inset
 {
        // Disable assignment operator, since it is not used, and it is too
        // complicated to implement it consistently with the copy constructor
@@ -114,7 +108,7 @@ public:
        ///
        void setParams(InsetExternalParams const &);
        /// Update not loaded previews
-       void updatePreview();
+       void updatePreview() const;
        /// \returns the number of rows (\n's) of generated code.
        void latex(otexstream &, OutputParams const &) const;
        ///
@@ -122,10 +116,10 @@ public:
        ///
        bool setMouseHover(BufferView const * bv, bool mouse_hover) const;
        ///
-       bool clickable(int, int) const { return true; }
+       bool clickable(BufferView const &, int, int) const { return true; }
        ///
        void addToToc(DocIterator const & di, bool output_active,
-                                 UpdateType utype) const;
+                                 UpdateType utype, TocBackend & backend) const;
 private:
        ///
        InsetExternal(InsetExternal const &);
@@ -169,11 +163,15 @@ private:
         *  and the preview should be regenerated.
         */
        void fileChanged() const;
+       /// Is this inset using (instant or graphics) preview?
+       bool isPreviewed() const;
+       /// Do we have the right renderer (button, graphic or monitored preview)?
+       bool isRendererValid() const;
 
        /// The current params
        InsetExternalParams params_;
        /// The thing that actually draws the image on LyX's screen.
-       boost::scoped_ptr<RenderBase> renderer_;
+       mutable unique_ptr<RenderBase> renderer_;
        /// changes color of the button when mouse enters/leaves this inset
        mutable std::map<BufferView const *, bool> mouse_hover_;
 };