+// -*- C++ -*-
/**
* \file FormExternal.h
- * Copyright 2001 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * \author unknown
+ * \author Asger Alstrup Nielsen
* \author John Levon
+ * \author Angus Leeming
+ *
+ * Full author contact details are available in file CREDITS.
*/
#ifndef FORMEXTERNAL_H
#define FORMEXTERNAL_H
-#include <boost/smart_ptr.hpp>
-#ifdef __GNUG__
-#pragma interface
-#endif
+#include "FormDialogView.h"
+#include <map>
-#include "FormBaseDeprecated.h"
-#include "insets/insetexternal.h"
-struct FD_form_external;
+class ControlExternal;
+struct FD_external;
/// The class for editing External insets via a dialog
-class FormExternal : public FormBaseBD {
+class FormExternal
+ : public FormController<ControlExternal, FormView<FD_external> > {
public:
///
- FormExternal(LyXView *, Dialogs *);
-
- /// Connect signals. Also perform any necessary initialisation.
- virtual void connect();
-
- /// Disconnect signals. Also perform any necessary housekeeping.
- virtual void disconnect();
-
- /// Slot launching dialog to an existing inset
- void showInset(InsetExternal *);
-
- /// bool indicates if a buffer switch took place
- virtual void updateSlot(bool);
-
- /// Callback function for the template drop-down
- static void templateCB(FL_OBJECT *, long);
-
- /// Callback function for the browse button
- static void browseCB(FL_OBJECT *, long);
-
- /// Callback function for the edit button
- static void editCB(FL_OBJECT *, long);
-
- /// Callback function for the view button
- static void viewCB(FL_OBJECT *, long);
-
- /// Callback function for the update production button
- static void updateCB(FL_OBJECT *, long);
-
- /// Pointer to the actual instantiation of the xform's form
- virtual FL_FORM * form() const;
-
+ FormExternal(Dialog &);
private:
- /// calculate the string to set the combo box
- string const getTemplatesComboString() const;
-
- /// get the position in the combo for a given name
- int getTemplateComboNumber(string const & name) const;
-
- /// get a template given its combo position
- ExternalTemplate getTemplate(int i) const;
+ /// apply changes
+ virtual void apply();
- /// change widgets on change of chosen template
- void updateComboChange();
-
/// build the dialog
- void build();
-
- /// the inset we're modifying
- InsetExternal * inset_;
-
- /// the parameters
- InsetExternal::InsetExternalParams params_;
+ virtual void build();
/// update the dialog
- void update();
-
- /// apply changes
- void apply();
-
- bool input(FL_OBJECT * obj, long data);
+ virtual void update();
- /// inset::hide connection.
- SigC::Connection ih_;
+ /// Filter the inputs on callback from xforms
+ virtual ButtonPolicy::SMInput input(FL_OBJECT *, long);
- /// build the dialog
- FD_form_external * build_external();
-
- /// Pointer to the actual instantiation of the ButtonController.
- virtual xformsBC & bc();
-
- /// the dialog implementation
- boost::scoped_ptr<FD_form_external> dialog_;
+ ///
+ void updateComboChange();
- /// The ButtonController
- ButtonController<OkCancelReadOnlyPolicy, xformsBC> bc_;
+ std::map<std::string, std::string> extra_;
};
-
-inline
-xformsBC & FormExternal::bc()
-{
- return bc_;
-}
-
#endif // FORMEXTERNAL_H