// -*- C++ -*-
-/* FormGraphics.h
- * FormGraphics Interface Class
+/**
+ * \file FormGraphics.h
+ * Copyright 2000-2001 the LyX Team
+ * Read the file COPYING
*
- * This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
- *
- * Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
- *
- * ======================================================
+ * \author Baruch Even, baruch.even@writeme.com
+ * \author Herbert Voss, voss@lyx.org
*/
#ifndef FORMGRAPHICS_H
#define FORMGRAPHICS_H
-#include "LString.h"
-#include "RadioButtonGroup.h"
-#include "ButtonPolicies.h"
-#include "FormInset.h"
+#include <boost/smart_ptr.hpp>
#ifdef __GNUG__
#pragma interface
-#endif
+#endif
-// Forward declarations for classes we use only as pointers.
-class InsetGraphics;
+#include "FormBase.h"
+#include "RadioButtonGroup.h"
+class ControlGraphics;
struct FD_form_graphics;
+struct FD_form_file;
+struct FD_form_lyxview;
+struct FD_form_size;
+struct FD_form_bbox;
+struct FD_form_special;
-/** This class provides an XForms implementation of the FormGraphics Dialog.
- *
- * @Author Baruch Even <baruch.even@writeme.com>
+/** This class provides an XForms implementation of the Graphics Dialog.
*/
-class FormGraphics : public FormInset {
+class FormGraphics : public FormCB<ControlGraphics, FormDB<FD_form_graphics> > {
public:
- /// #FormGraphics x(LyXFunc ..., Dialogs ...);#
- FormGraphics(LyXView *, Dialogs *);
///
- ~FormGraphics();
+ FormGraphics(ControlGraphics &);
private:
- /// The maximum digits for the image width (cm, inch, percent)
- enum {
- ///
- WIDTH_MAXDIGITS = 3
- };
- /// The maximum digits for the image height (cm, inch, percent)
- enum {
- ///
- HEIGHT_MAXDIGITS = 3
- };
- /// The maximum characters in the rotation angle (minus sign and 3 digits)
- enum {
- ///
- ROTATE_MAXCHARS = 4
- };
- /// The maximum characters in a filename.
- enum {
- ///
- FILENAME_MAXCHARS = 1024
- };
- ///
- enum State {
- ///
- CHECKINPUT,
- ///
- BROWSE,
- ///
- ADVANCEDINPUT
- };
- /// Build the dialog
+ /** Redraw the form (on receipt of a Signal indicating, for example,
+ that the xforms colours have been re-mapped). */
+ virtual void redraw();
+ /// Set the Params variable for the Controller.
+ virtual void apply();
+ /// Build the dialog.
virtual void build();
- /// Filter the inputs
- virtual bool input( FL_OBJECT *, long );
- /// Update the popup.
+ /// Update dialog before/whilst showing it.
virtual void update();
- /// Apply from popup
- virtual void apply();
+ /// Update the BoundingBox info.
+ void updateBB(string const & filename, string const & bb_inset);
+ /// Filter the inputs on callback from xforms
+ virtual ButtonPolicy::SMInput input(FL_OBJECT *, long);
- /// Disconnect signals. Also perform any necessary housekeeping.
- virtual void disconnect();
-
- /// Save the active inset and show the dialog.
- void showDialog(InsetGraphics *);
- /// Verify that the input is correct. If not disable ok/apply buttons.
- bool checkInput();
- /// Open the file browse dialog to select an image file.
- void browse();
- /// Display a file browser dialog and return the file chosen.
- string browseFile(string const & filename);
-
- /// Pointer to the actual instantiation of the xform's form
- virtual FL_FORM * form() const;
/// Fdesign generated method
FD_form_graphics * build_graphics();
+ ///
+ FD_form_file * build_file();
+ ///
+ FD_form_lyxview * build_lyxview();
+ ///
+ FD_form_size * build_size();
+ ///
+ FD_form_bbox * build_bbox();
+ ///
+ FD_form_special * build_special();
/// Real GUI implementation.
- FD_form_graphics * dialog_;
- /** Which Inset do we belong to?
- Used to set and update data to/from the inset.
- */
- InsetGraphics * inset_;
- /// The radio buttons groups
- RadioButtonGroup widthButtons;
+ boost::scoped_ptr<FD_form_file> file_;
+ ///
+ boost::scoped_ptr<FD_form_lyxview> lyxview_;
+ ///
+ boost::scoped_ptr<FD_form_size> size_;
///
- RadioButtonGroup heightButtons;
+ boost::scoped_ptr<FD_form_bbox> bbox_;
///
- RadioButtonGroup displayButtons;
- /// Last used figure path
- string last_image_path;
+ boost::scoped_ptr<FD_form_special> special_;
};
-#endif
+#endif // FORMGRAPHICS_H