]> 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 027b385ae4121ad176a34a5e7786a55d20bab11c..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 <config.h>
-#include "LString.h"
-
-#include "buffer.h"
-#include "lyxlex.h"
-
-using std::ostream;
-
-/// This struct holds all the parameters needed by insetGraphics.
-struct InsetGraphicsParams {
-    /// Image filename.
-    string filename;
-    
-    /// 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;
-
-    /// Is the figure inlined? (not in a paragraph of its own).
-    bool inlineFigure;
-
-    /// 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
-    };
-
-    
-    /// 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;
 
 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);
+       /// 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);
 };
 
-bool operator==(InsetGraphicsParams const&, InsetGraphicsParams const &);
+///
+bool operator==(InsetGraphicsParams const &, InsetGraphicsParams const &);
+///
+bool operator!=(InsetGraphicsParams const &, InsetGraphicsParams const &);
+
+} // namespace lyx
 
 #endif