// -*- C++ -*-
-/* This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
- *
- * Copyright 2000-2001 The LyX Team.
- *
- * ======================================================
- *
+/**
* \file FormExternal.h
- * \author Asger Alstrup
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Asger Alstrup Nielsen
* \author John Levon
- * \author Angus Leeming, a.leeming@ic.ac.uk
+ * \author Angus Leeming
+ *
+ * Full author contact details are available in file CREDITS.
*/
#ifndef FORMEXTERNAL_H
#define FORMEXTERNAL_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-#include "FormBase.h"
-#include "insets/insetexternal.h"
+#include "FormDialogView.h"
+#include <map>
class ControlExternal;
-struct FD_form_external;
+struct FD_external;
+struct FD_external_file;
+struct FD_external_lyxview;
+struct FD_external_rotate;
+struct FD_external_scale;
+struct FD_external_crop;
+struct FD_external_options;
/// The class for editing External insets via a dialog
-class FormExternal : public FormCB<ControlExternal, FormDB<FD_form_external> > {
+class FormExternal
+ : public FormController<ControlExternal, FormView<FD_external> > {
public:
///
- FormExternal(ControlExternal &);
+ FormExternal(Dialog &);
+
+ typedef std::map<std::string, std::string> MapType;
+
+ enum Tabs {
+ FILETAB,
+ LYXVIEWTAB,
+ ROTATETAB,
+ SCALETAB,
+ CROPTAB,
+ OPTIONSTAB
+ };
+
+ typedef std::map<Tabs, FL_OBJECT *> TabMap;
private:
/// apply changes
- void apply();
+ virtual void apply();
/// build the dialog
- void build();
+ virtual void build();
/// update the dialog
- void update();
+ virtual void update();
/// Filter the inputs on callback from xforms
- ButtonPolicy::SMInput input(FL_OBJECT *, long);
+ virtual ButtonPolicy::SMInput input(FL_OBJECT *, long);
- ///
+ bool activateAspectratio() const;
+ void getBB();
void updateComboChange();
+ void widthUnitChanged();
+
+ MapType extra_;
+
+ TabMap tabmap_;
- /// Fdesign generated method
- FD_form_external * build_external();
+ /// Real GUI implementation.
+ boost::scoped_ptr<FD_external_file> file_;
+ boost::scoped_ptr<FD_external_lyxview> lyxview_;
+ boost::scoped_ptr<FD_external_rotate> rotate_;
+ boost::scoped_ptr<FD_external_scale> scale_;
+ boost::scoped_ptr<FD_external_crop> crop_;
+ boost::scoped_ptr<FD_external_options> options_;
};
#endif // FORMEXTERNAL_H