]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetexternal.h
fix #832
[lyx.git] / src / insets / insetexternal.h
index 278ad8a8275df008016364bc5d2573439034c01e..930a9d904cab25dcf3e50f34c8da21183fe040d5 100644 (file)
@@ -1,37 +1,28 @@
 // -*- C++ -*-
-/* This file is part of*
- * ======================================================
+/**
+ * \file insetexternal.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *           LyX, The Document Processor
- *     
- *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2000 The LyX Team.
+ * \author Asger Alstrup Nielsen
  *
- * ====================================================== */
+ * Full author contact details are available in file CREDITS
+ */
 
 #ifndef INSET_EXTERNAL_H
 #define INSET_EXTERNAL_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
-
 #include "insetbutton.h"
 #include "ExternalTemplate.h"
 #include "LString.h"
-#include <sigc++/signal_system.h>
-
-#ifdef SIGC_CXX_NAMESPACES
-using SigC::Signal0;
-#endif
 
 ///
 class InsetExternal : public InsetButton {
 public:
        /// hold parameters settable from the GUI
-       struct InsetExternalParams {
-               InsetExternalParams(string const & f = string(), 
-                                       string const & p = string(), 
+       struct Params {
+               Params(string const & f = string(),
+                                       string const & p = string(),
                                        ExternalTemplate const & t = ExternalTemplate())
                        : filename(f), parameters(p), templ(t) {}
                /// the filename
@@ -45,16 +36,16 @@ public:
        InsetExternal();
        ///
        virtual ~InsetExternal();
-       /// what appears in the minibuffer when opening
-       virtual string const EditMessage() const;
        ///
-       virtual void Edit(BufferView *, int x, int y, unsigned int button);
+       virtual dispatch_result localDispatch(FuncRequest const & cmd); 
+       /// what appears in the minibuffer when opening
+       virtual string const editMessage() const;
        ///
-       virtual EDITABLE Editable() const { return IS_EDITABLE; }
+       virtual EDITABLE editable() const { return IS_EDITABLE; }
        ///
-       virtual void Write(Buffer const *, std::ostream &) const;
+       virtual void write(Buffer const *, std::ostream &) const;
        ///
-       virtual void Read(Buffer const *, LyXLex & lex);
+       virtual void read(Buffer const *, LyXLex & lex);
 
        /** returns the number of rows (\n's) of generated tex code.
         fragile == true means, that the inset should take care about
@@ -62,35 +53,38 @@ public:
         If the free_spc (freespacing) variable is set, then this inset
         is in a free-spacing paragraph.
         */
-       virtual int Latex(Buffer const *, std::ostream &, bool fragile,
+       virtual int latex(Buffer const *, std::ostream &, bool fragile,
                          bool free_spc) const;
        /// write ASCII output to the ostream
-       virtual int Ascii(Buffer const *, std::ostream &, int linelen) const;
+       virtual int ascii(Buffer const *, std::ostream &, int linelen) const;
        /// write LinuxDoc output to the ostream
-       virtual int Linuxdoc(Buffer const *, std::ostream &) const;
+       virtual int linuxdoc(Buffer const *, std::ostream &) const;
        /// write DocBook output to the ostream
-       virtual int DocBook(Buffer const *, std::ostream &) const;
+       virtual int docbook(Buffer const *, std::ostream &, bool mixcont) const;
 
        /// Updates needed features for this inset.
-       virtual void Validate(LaTeXFeatures & features) const;
+       virtual void validate(LaTeXFeatures & features) const;
 
        /// returns LyX code associated with the inset. Used for TOC, ...)
-       virtual Inset::Code LyxCode() const { return EXTERNAL_CODE; }
+       virtual Inset::Code lyxCode() const { return EXTERNAL_CODE; }
+
        ///
-       virtual Inset * Clone(Buffer const &) const;
+       virtual Inset * clone(Buffer const &, bool same_id = false) const;
 
        /// returns the text of the button
-       virtual string const getScreenLabel() const;
+       virtual string const getScreenLabel(Buffer const *) const;
 
        // The following public members are used from the frontends code
 
        /// set the parameters from a Params structure
-       virtual void setFromParams(InsetExternalParams const &);
+       virtual void setFromParams(Params const &);
 
-       /// update the file represented by the template
+       ///
        void updateExternal() const;
 
+       /// update the file represented by the template
+       void updateExternal(string const &, Buffer const *) const;
+
        /// edit file of this template
        void editExternal() const;
 
@@ -98,10 +92,10 @@ public:
        void viewExternal() const;
 
        /// return a copy of our current params
-       InsetExternalParams params() const;
+       Params const & params() const;
 
-       /// hide connection
-       Signal0<void> hideDialog;
+       ///
+       void setView(BufferView * bv) { view_ = bv; }
 
 private:
        /// Write the output for a specific file format
@@ -115,13 +109,37 @@ private:
        string const doSubstitution(Buffer const *, string const & s) const;
 
        /// our owning view
-       BufferView * view;
+       BufferView * view_;
 
        /// the current params
-       InsetExternalParams params_;
+       Params params_;
 
        /// A temp filename
-       string tempname;
+       string tempname_;
+};
+
+
+#include "mailinset.h"
+
+class InsetExternalMailer : public MailInset {
+public:
+       ///
+       InsetExternalMailer(InsetExternal & inset);
+       ///
+       virtual InsetBase & inset() const { return inset_; }
+       ///
+       virtual string const & name() const { return name_; }
+       ///
+       virtual string const inset2string() const;
+       ///
+       static void string2params(string const &, InsetExternal::Params &);
+       ///
+       static string const params2string(InsetExternal::Params const &);
+private:
+       ///
+       static string const name_;
+       ///
+       InsetExternal & inset_;
 };
 
 #endif