]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetgraphicsParams.h
* src/LyXAction.C: mark goto-clear-bookmark as working without buffer
[lyx.git] / src / insets / insetgraphicsParams.h
index 9e9448d455d5a17b1a3417a66d00177bfc728896..8b2a62842401af1d53257c5e14a5e0a67ad43282 100644 (file)
 // -*- C++ -*-
-/* This file is part of
- * =================================================
- * 
- *          LyX, The Document Processor
- *          Copyright 1995 Matthias Ettrich.
- *          Copyright 1995-2000 The LyX Team.
+/**
+ * \file insetgraphicsParams.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *          This file Copyright 2000 Baruch Even
- * ================================================= */
+ * \author Baruch Even
+ * \author Herbert Voß
+ *
+ * Full author contact details are available in file CREDITS.
+ */
 
 #ifndef INSETGRAPHICSPARAMS_H
 #define INSETGRAPHICSPARAMS_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif 
 
-#include "LString.h"
+#include "graphics/GraphicsTypes.h"
+#include "lyxlength.h"
+#include "support/filename.h"
 
-#include "buffer.h"
-#include "lyxlex.h"
+namespace lyx {
 
-using std::ostream;
+namespace graphics { class Params; }
 
-/// This struct holds all the parameters needed by insetGraphics.
-struct InsetGraphicsParams
-{
-       /// Image filename.
-       string filename;
+class LyXLex;
 
-       /// How do we display the image?
-       enum DisplayType {
-           /// In full color range (if it's not in color we show it as it is)
-           COLOR,
-           /// In Grayscale (256 shades of gray).
-           GRAYSCALE,
-           /// In black and white.
-           MONOCHROME,
-           /// Don't display it on screen, only keep a frame in place.
-           NONE
-       };
 
-       /// How to display the image
-       DisplayType display;
+/// 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;
 
-       /// Is the figure inlined? (not in a paragraph of its own).
-       bool inlineFigure;
+       /// 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.
-       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
-       };
+       std::string subcaptionText;
+       /// any userdefined special command
+       std::string special;
 
-
-       /// 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 & operator=(InsetGraphicsParams const &);
-
        /// Save the parameters in the LyX format stream.
-       void Write(Buffer const * buf, ostream & os) const;
-
+       void Write(std::ostream & os, std::string const & bufpath) 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;
+       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;
 
 private:
        /// Initialize the object to a default status.
        void init();
-
        /// Copy the other objects content to us, used in copy c-tor and assignment
        void copy(InsetGraphicsParams const & params);
 };
@@ -127,4 +92,6 @@ bool operator==(InsetGraphicsParams const &, InsetGraphicsParams const &);
 ///
 bool operator!=(InsetGraphicsParams const &, InsetGraphicsParams const &);
 
-#endif 
+} // namespace lyx
+
+#endif