- /// The text of the subcaption.
- string subcaptionText;
-
- /// This is the different origins that the graphicx package support.
- enum Origin {
- DEFAULT,
- LEFTTOP,
- LEFTCENTER,
- LEFTBASELINE,
- LEFTBOTTOM,
- CENTERTOP,
- CENTER,
- CENTERBASELINE,
- CENTERBOTTOM,
- RIGHTTOP,
- RIGHTCENTER,
- RIGHTBASELINE,
- RIGHTBOTTOM,
- REFERENCE_POINT = LEFTBASELINE
- };
-
- /// The resize of the image, is it the default size, in cm, inch or
- /// percentage of the page/column width/height
- enum Resize {
- DEFAULT_SIZE,
- CM,
- INCH,
- PERCENT_PAGE,
- PERCENT_COLUMN
- };
-
-
- /// Keep the ratio between height and width when resizing.
- bool keepAspectRatio;
-
- // What width resize to do?
- Resize widthResize;
- // Value of width resize
- float widthSize;
- // What height resize to do?
- Resize heightResize;
- // Value of height resize
- float heightSize;
-
- // Origin point of rotation
- Origin rotateOrigin;
- // Rotation angle.
- int rotateAngle;
-
- InsetGraphicsParams();
-
- InsetGraphicsParams(InsetGraphicsParams const &);
- InsetGraphicsParams const & operator=(InsetGraphicsParams const &);
-
- /// Save the parameters in the LyX format stream.
- void Write(Buffer const * buf, ostream & os) const;
-
- /// If the token belongs to our parameters, read it.
- bool Read(Buffer const * buf, LyXLex & lex, string const & token);
-
- /// Test the struct to make sure that all the options have legal values.
- void testInvariant() const;
+#include "graphics/GraphicsTypes.h"
+#include "lyxlength.h"
+#include "support/filename.h"
+
+namespace lyx {
+
+namespace graphics { class Params; }
+
+class LyXLex;
+
+
+/// This class holds all the parameters needed by insetGraphics.
+class InsetGraphicsParams
+{
+public:
+ /// Image filename.
+ support::DocFileName filename;
+ /// Scaling the Screen inside Lyx
+ unsigned int lyxscale;
+ /// How to display the image inside LyX
+ graphics::DisplayType display;
+ /// Scaling for output (LaTeX)
+ std::string scale;
+ /// sizes for output (LaTeX)
+ LyXLength width;
+ ///
+ LyXLength height;
+ /// Keep the ratio between height and width when resizing.
+ bool keepAspectRatio;
+ /// draft mode
+ bool draft;
+ /// what to do with zipped files
+ bool noUnzip;
+
+ /// The bounding box with "xLB yLB yRT yRT ", divided by a space!
+ std::string bb;
+ /// clip image
+ bool clip;
+
+ /// Rotation angle.
+ std::string rotateAngle;
+ /// Origin point of rotation
+ std::string rotateOrigin;
+ /// Do we have a subcaption?
+ bool subcaption;
+ /// The text of the subcaption.
+ std::string subcaptionText;
+ /// any userdefined special command
+ std::string special;
+
+ ///
+ InsetGraphicsParams();
+ ///
+ InsetGraphicsParams(InsetGraphicsParams const &);
+ ///
+ InsetGraphicsParams & operator=(InsetGraphicsParams const &);
+ /// Save the parameters in the LyX format stream.
+ void Write(std::ostream & os, std::string const & bufpath) const;
+ /// If the token belongs to our parameters, read it.
+ bool Read(LyXLex & lex, std::string const & token, std::string const & bufpath);
+ /// convert
+ // Only a subset of InsetGraphicsParams is needed for display purposes.
+ // This function also interrogates lyxrc to ascertain whether
+ // to display or not.
+ graphics::Params as_grfxParams() const;