]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetExternal.h
Remove all BufferParam arguments in InsetXXX methods (since insets know about their...
[lyx.git] / src / insets / InsetExternal.h
index 31af0458a18b0e7f40d9b5504126b2bbcea7b82f..5f9d9b7da712cc903979c44dde9bc4b91c2f2a30 100644 (file)
@@ -13,6 +13,7 @@
 #define INSET_EXTERNAL_H
 
 #include "Inset.h"
+#include "ExternalTemplate.h"
 #include "ExternalTransforms.h"
 
 #include "support/FileName.h"
@@ -21,8 +22,6 @@
 #include <boost/scoped_ptr.hpp>
 #include <boost/signals/trackable.hpp>
 
-#include "MailInset.h"
-
 
 /** No two InsetExternalParams variables can have the same temporary file.
  *  This class has copy-semantics but the copy constructor
@@ -46,20 +45,6 @@ private:
        support::FileName tempname_;
 };
 
-/// How is the image to be displayed on the LyX screen?
-enum DisplayType {
-       DefaultDisplay,
-       MonochromeDisplay,
-       GrayscaleDisplay,
-       ColorDisplay,
-       PreviewDisplay,
-       NoDisplay
-};
-
-
-/// The translator between the Display enum and corresponding lyx string.
-Translator<DisplayType, std::string> const & displayTranslator();
-
 } // namespace external
 
 
@@ -80,8 +65,10 @@ public:
 
        /// The external file.
        support::DocFileName filename;
-       /// How the inset is to be displayed by LyX.
-       external::DisplayType display;
+       /// If the inset is to be displayed by LyX.
+       bool display;
+       /// If the inset is to use the preview mechanism.
+       PreviewMode preview_mode;
        /// The scale of the displayed graphic (if shown).
        unsigned int lyxscale;
 
@@ -107,59 +94,64 @@ class RenderBase;
 class InsetExternal : public Inset, public boost::signals::trackable
 {
 public:
-       InsetExternal();
+       InsetExternal(Buffer &);
+       ///
+       ~InsetExternal();
        ///
-       virtual ~InsetExternal();
+       static void string2params(std::string const &, Buffer const &,
+                                 InsetExternalParams &);
+       ///
+       static std::string params2string(InsetExternalParams const &,
+                                              Buffer const &);
+       ///
+       InsetExternalParams const & params() const;
        ///
-       virtual Inset::Code lyxCode() const { return EXTERNAL_CODE; }
+       void setParams(InsetExternalParams const &);
+       /// Update not loaded previews
+       void updatePreview();
+       /// \returns the number of rows (\n's) of generated code.
+       int latex(odocstream &, OutputParams const &) const;
        ///
-       virtual EDITABLE editable() const { return IS_EDITABLE; }
+       docstring contextMenu(BufferView const & bv, int x, int y) const;
 
+private:
        ///
-       bool metrics(MetricsInfo &, Dimension &) const;
+       InsetExternal(InsetExternal const &);
        ///
-       void draw(PainterInfo & pi, int x, int y) const;
+       InsetCode lyxCode() const { return EXTERNAL_CODE; }
        ///
-       virtual void write(Buffer const &, std::ostream &) const;
+       bool hasSettings() const { return true; }
        ///
-       virtual void read(Buffer const &, Lexer & lex);
-
-       /// \returns the number of rows (\n's) of generated code.
-       int latex(Buffer const &, odocstream &,
-                 OutputParams const &) const;
+       void metrics(MetricsInfo &, Dimension &) const;
        ///
-       int plaintext(Buffer const &, odocstream &,
-                     OutputParams const &) const;
+       void draw(PainterInfo & pi, int x, int y) const;
        ///
-       int docbook(Buffer const &, odocstream &,
-                   OutputParams const &) const;
-
-       /// Update needed features for this inset.
-       virtual void validate(LaTeXFeatures & features) const;
-
+       void write(std::ostream &) const;
        ///
-       InsetExternalParams const & params() const;
+       void read(Lexer & lex);
        ///
-       void setParams(InsetExternalParams const &, Buffer const &);
+       int plaintext(odocstream &, OutputParams const &) const;
+       ///
+       int docbook(odocstream &, OutputParams const &) const;
+       /// For now, this does nothing. Someone who knows about this
+       /// should see what needs doing for XHTML output.
+       docstring xhtml(odocstream &, OutputParams const &) const;
+       /// Update needed features for this inset.
+       void validate(LaTeXFeatures & features) const;
        ///
        void addPreview(graphics::PreviewLoader &) const;
        ///
-       void edit(Cursor & cur, bool left);
+       bool showInsetDialog(BufferView * bv) const;
        ///
        bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
-
-protected:
-       InsetExternal(InsetExternal const &);
        ///
-       virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
-private:
-       virtual std::auto_ptr<Inset> doClone() const;
-
+       void doDispatch(Cursor & cur, FuncRequest & cmd);
+       ///
+       Inset * clone() const { return new InsetExternal(*this); }
        /** This method is connected to the graphics loader, so we are
         *  informed when the image has been loaded.
         */
        void statusChanged() const;
-
        /** Slot receiving a signal that the external file has changed
         *  and the preview should be regenerated.
         */
@@ -171,30 +163,6 @@ private:
        boost::scoped_ptr<RenderBase> renderer_;
 };
 
-
-class InsetExternalMailer : public MailInset {
-public:
-       ///
-       InsetExternalMailer(InsetExternal & inset);
-       ///
-       virtual Inset & inset() const { return inset_; }
-       ///
-       virtual std::string const & name() const { return name_; }
-       ///
-       virtual std::string const inset2string(Buffer const &) const;
-       ///
-       static void string2params(std::string const &, Buffer const &,
-                                 InsetExternalParams &);
-       ///
-       static std::string const params2string(InsetExternalParams const &,
-                                              Buffer const &);
-private:
-       ///
-       static std::string const name_;
-       ///
-       InsetExternal & inset_;
-};
-
 } // namespace lyx
 
-#endif
+#endif // INSET_EXTERNAL_H