]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormGraphics.h
Change the semantics of 'none' and 'auto' viewers/editors: 'none' means now
[lyx.git] / src / frontends / xforms / FormGraphics.h
index af7378a4d798789c4fb7ee2407f13cb65bfd1ce5..97364f34720de1e8ef0637b6edbfb914b9c32202 100644 (file)
@@ -1,95 +1,70 @@
-/* This file is part of
- * ====================================================== 
- *
- *           LyX, The Document Processor
- *
- *           Copyright 2000-2001 The LyX Team.
+// -*- C++ -*-
+/**
+ * \file FormGraphics.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- * ======================================================
+ * \author Baruch Even
+ * \author Herbert Voß
  *
- * \file FormGraphics.h
- * \author Baruch Even, baruch.even@writeme.com
+ * Full author contact details are available in file CREDITS.
  */
 
 #ifndef FORMGRAPHICS_H
 #define FORMGRAPHICS_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif 
+#include "FormDialogView.h"
+#include <boost/scoped_ptr.hpp>
+#include <vector>
 
-#include "FormBase.h"
-#include "RadioButtonGroup.h"
+namespace lyx {
+namespace frontend {
 
+class CheckedPath;
 class ControlGraphics;
-struct FD_form_graphics;
+struct FD_graphics;
+struct FD_graphics_file;
+struct FD_graphics_bbox;
+struct FD_graphics_extra;
 
 /** This class provides an XForms implementation of the Graphics Dialog.
  */
-class FormGraphics : public FormCB<ControlGraphics, FormDB<FD_form_graphics> > {
+class FormGraphics
+       : public FormController<ControlGraphics, FormView<FD_graphics> > {
 public:
        ///
-       FormGraphics(ControlGraphics &);
-
+       FormGraphics(Dialog &);
 private:
+
+       /** 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();
-       /// Hide the dialog.
-       virtual void hide();
        /// Update dialog before/whilst showing it.
        virtual void update();
+       /// Update the BoundingBox info.
+       void updateBB(std::string const & filename, std::string const & bb_inset);
        /// Filter the inputs on callback from xforms
        virtual ButtonPolicy::SMInput input(FL_OBJECT *, long);
 
-       /// 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
-       };
-
-       /// Verify that the input is correct. If not disable ok/apply buttons.
-       ButtonPolicy::SMInput checkInput();
-       /// Open the file browse dialog to select an image file.
-       void browse();
+       // Accessor to checker owned by the button controller.
+       CheckedPath * file_checker_;
 
-       /// Fdesign generated method
-       FD_form_graphics * build_graphics();
-
-       /// The radio buttons groups
-       RadioButtonGroup widthButtons;
+       /// Real GUI implementation.
+       boost::scoped_ptr<FD_graphics_file> file_;
        ///
-       RadioButtonGroup heightButtons;
+       boost::scoped_ptr<FD_graphics_bbox> bbox_;
        ///
-       RadioButtonGroup displayButtons;
-       /// Last used figure path
-       string last_image_path;
+       boost::scoped_ptr<FD_graphics_extra> extra_;
+
+       /// Store the LaTeX names for the rotation origins.
+       std::vector<std::string> origins_;
 };
 
+} // namespace frontend
+} // namespace lyx
 
 #endif  // FORMGRAPHICS_H