]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetexternal.h
updates to minipage inset
[lyx.git] / src / insets / insetexternal.h
index 58f1b6763cb46fc4eaf070096c3b555dad3688b6..278ad8a8275df008016364bc5d2573439034c01e 100644 (file)
@@ -1,9 +1,9 @@
 // -*- C++ -*-
 /* This file is part of*
- * ====================================================== 
+ * ======================================================
  *
  *           LyX, The Document Processor
- *      
+ *     
  *           Copyright 1995 Matthias Ettrich
  *           Copyright 1995-2000 The LyX Team.
  *
 #endif
 
 #include "insetbutton.h"
+#include "ExternalTemplate.h"
 #include "LString.h"
-#include "../lyx.h"
+#include <sigc++/signal_system.h>
 
-struct ExternalTemplate;
+#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(), 
+                                       ExternalTemplate const & t = ExternalTemplate())
+                       : filename(f), parameters(p), templ(t) {}
+               /// the filename
+               string filename;
+               /// the parameters of the current choice
+               string parameters;
+               /// the current template used
+               ExternalTemplate templ;
+       };
+
        InsetExternal();
        ///
        virtual ~InsetExternal();
        /// what appears in the minibuffer when opening
-       virtual char const * EditMessage() const;
+       virtual string const EditMessage() const;
        ///
        virtual void Edit(BufferView *, int x, int y, unsigned int button);
        ///
@@ -38,6 +55,7 @@ public:
        virtual void Write(Buffer const *, std::ostream &) const;
        ///
        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
         fragile commands by adding a \protect before.
@@ -46,107 +64,61 @@ public:
         */
        virtual int Latex(Buffer const *, std::ostream &, bool fragile,
                          bool free_spc) const;
-       ///
-       virtual int Ascii(Buffer const *, std::ostream &) const;
-       ///
+       /// write ASCII output to the ostream
+       virtual int Ascii(Buffer const *, std::ostream &, int linelen) const;
+       /// write LinuxDoc output to the ostream
        virtual int Linuxdoc(Buffer const *, std::ostream &) const;
-       ///
+       /// write DocBook output to the ostream
        virtual int DocBook(Buffer const *, std::ostream &) const;
+
        /// Updates needed features for this inset.
        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 * Clone() const;
+       virtual Inset * Clone(Buffer const &) const;
 
        /// returns the text of the button
-       virtual string getScreenLabel() const;
+       virtual string const getScreenLabel() const;
+
+       // The following public members are used from the frontends code
 
-       /// Callback function for the template drop-down
-       static void templateCB(FL_OBJECT *, long);
+       /// set the parameters from a Params structure
+       virtual void setFromParams(InsetExternalParams const &);
 
-       /// Callback function for the browse button
-       static void browseCB(FL_OBJECT *, long);
+       /// update the file represented by the template
+       void updateExternal() const;
 
-       /// Callback function for the edit button
-       static void editCB(FL_OBJECT *, long);
+       /// edit file of this template
+       void editExternal() const;
 
-       /// Callback function for the view button
-       static void viewCB(FL_OBJECT *, long);
+       /// view file of this template
+       void viewExternal() const;
 
-       /// Callback function for the update production button
-       static void updateCB(FL_OBJECT *, long);
+       /// return a copy of our current params
+       InsetExternalParams params() const;
 
-       /// Callback function for the ok button
-       static void okCB(FL_OBJECT *, long);
+       /// hide connection
+       Signal0<void> hideDialog;
 
-       /// Callback function for the cancel button
-       static void cancelCB(FL_OBJECT *, long);
 private:
        /// Write the output for a specific file format
        int write(string const & format, Buffer const *,
                  std::ostream &) const;
 
-       /// Apply the changes
-       void doApply(BufferView * bv);
-
        /// Execute this command in the directory of this document
        void executeCommand(string const & s, Buffer const * buf) const;
 
-       /// Update if automatic
-       void automaticUpdate(BufferView const *) const;
-
-       /// Do update
-       void doUpdate(BufferView const *) const;
-       /// Do edit
-       void doEdit(BufferView const *) const;
-       /// Do view
-       void doView(BufferView const *) const;
-
        /// Substitute meta-variables in this string
-       string doSubstitution(Buffer const *, string const & s) const;
-
-       /** Get the LyX name of the currently selected
-           template in the choice list
-       */
-       string getCurrentTemplate() const;
+       string const doSubstitution(Buffer const *, string const & s) const;
 
-       /// Get a certain template from a LyX name
-       ExternalTemplate getTemplate(string const & lyxname) const;
+       /// our owning view
+       BufferView * view;
 
-       /**
-        * Get the number starting from 1 of a template with a 
-        * specific LyX name for the choice list
-        */
-       int getTemplateNumber(string const & guiname) const;
-
-       /// Get the LyX name of a template with a given number starting from 1
-       string getTemplateName(int n) const;
-
-       /// Get a string with all the GUI template names separated by |
-       string getTemplateString() const;
-
-       ///
-       struct Holder {
-               InsetExternal * inset;
-               BufferView * view;
-       };
-       ///
-       Holder holder;
-
-       /// The external inset form
-       FD_form_external * form_external;
-
-       ///
-       string templatename;
-
-       ///
-       string filename;
-
-       ///
-       string parameters;
+       /// the current params
+       InsetExternalParams params_;
 
        /// A temp filename
        string tempname;