-/* 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 Voss
*
- * \file FormGraphics.h
- * \author Baruch Even, baruch.even@writeme.com
+ * Full author contact details are available in file CREDITS
*/
#ifndef FORMGRAPHICS_H
#ifdef __GNUG__
#pragma interface
-#endif
+#endif
#include "FormBase.h"
#include "RadioButtonGroup.h"
+#include <boost/scoped_ptr.hpp>
+
+#include <vector>
+
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 FormCB<ControlGraphics, FormDB<FD_graphics> > {
public:
///
- FormGraphics(ControlGraphics &);
-
+ FormGraphics();
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(string const & filename, 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
- };
+ /// Real GUI implementation.
+ boost::scoped_ptr<FD_graphics_file> file_;
///
- enum State {
- ///
- CHECKINPUT,
- ///
- BROWSE,
- ///
- ADVANCEDINPUT
- };
-
- /// Verify that the input is correct. If not disable ok/apply buttons.
- ButtonPolicy::SMInput checkInput();
-
- /// Fdesign generated method
- FD_form_graphics * build_graphics();
-
- /// The radio buttons groups
- RadioButtonGroup widthButtons;
+ boost::scoped_ptr<FD_graphics_bbox> bbox_;
///
- RadioButtonGroup heightButtons;
- ///
- 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<string> origins_;
+};
#endif // FORMGRAPHICS_H