]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormGraphics.h
Bugfixes: checkboxes to radiobuttons (from J�rgen S) and remove a little
[lyx.git] / src / frontends / xforms / FormGraphics.h
index a7d1d49e4e519ae5f77ea0a8722fc774c64cffa2..0faa35eebefb5eeb877c5edefe7b00ecda84149d 100644 (file)
 // -*- C++ -*-
-/* FormGraphics.h
- * FormGraphics Interface Class
- *
- * This file is part of
+/* This file is part of
  * ====================================================== 
  *
  *           LyX, The Document Processor
  *
- *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2000 The LyX Team.
+ *           Copyright 2000-2001 The LyX Team.
  *
  * ======================================================
+ *
+ * \file FormGraphics.h
+ * \author Baruch Even, baruch.even@writeme.com
  */
 
 #ifndef FORMGRAPHICS_H
 #define FORMGRAPHICS_H
 
-#include <boost/smart_ptr.hpp>
-
 #ifdef __GNUG__
 #pragma interface
 #endif 
 
-#include "LString.h"
+#include "FormBase.h"
 #include "RadioButtonGroup.h"
-#include "FormInset.h"
-
-// Forward declarations for classes we use only as pointers.
-class InsetGraphics;
 
+class ControlGraphics;
 struct FD_form_graphics;
 
-/** 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
-       };
-
-       /// Pointer to the actual instantiation of the ButtonController.
-       virtual xformsBC & bc();
-       /// Build the dialog
+       /// 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();
+       /// 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();
+       ButtonPolicy::SMInput checkInput();
 
-       /// Pointer to the actual instantiation of the xforms form
-       virtual FL_FORM * form() const;
        /// Fdesign generated method
        FD_form_graphics * build_graphics();
-
-       /// Real GUI implementation.
-       boost::scoped_ptr<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;
-       ///
-       RadioButtonGroup heightButtons;
-       ///
-       RadioButtonGroup displayButtons;
-       /// Last used figure path
-       string last_image_path;
-       /// The ButtonController
-       ButtonController<NoRepeatedApplyReadOnlyPolicy, xformsBC> bc_;
 };
 
 
-inline
-xformsBC & FormGraphics::bc()
-{
-       return bc_;
-}
-#endif 
+#endif  // FORMGRAPHICS_H