]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetgraphicsParams.h
Switch from SigC signals to boost::signals
[lyx.git] / src / insets / insetgraphicsParams.h
index 2611672099bdb706f558634750edfd9955721ab4..dc8e0b508b37154929db44d4faef421ee149adfe 100644 (file)
@@ -1,12 +1,13 @@
 // -*- C++ -*-
 /* This file is part of
  * =================================================
- * 
+ *
  *          LyX, The Document Processor
  *          Copyright 1995 Matthias Ettrich.
- *          Copyright 1995-2000 The LyX Team.
+ *          Copyright 1995-2002 The LyX Team.
  *
- *          This file Copyright 2000 Baruch Even
+ * \author Baruch Even
+ * \author Herbert Voss <voss@lyx.org>
  * ================================================= */
 
 #ifndef INSETGRAPHICSPARAMS_H
 #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;
+#include "graphics/GraphicsParams.h"
 
-    /// 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
+/// This struct holds all the parameters needed by insetGraphics.
+struct InsetGraphicsParams
+{
+       /// How do we display the image?
+       enum DisplayType {
+           DEFAULT,            // whatever is in lyxrc.display_graphics
+           COLOR,              // full color range
+           GRAYSCALE,          // 256 shades of gray
+           MONOCHROME,         // In black and white.
+           NONE                // only keep a frame in place.
        };
-
-    /// 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;
+       ///
+       enum sizeType {         // for latex and/or lyx
+           DEFAULT_SIZE,       // like none
+           WH,                 // width/height values
+           SCALE               // percentage value
+       };
+       /// Image filename.
+       string filename;
+       /// Do we have a subcaption?
+       bool subcaption;
+       /// The text of the subcaption.
+       string subcaptionText;
+       /// Do we rotate?
+       bool rotate;
+       /// Origin point of rotation
+       string rotateOrigin;
+       /// Rotation angle.
+       float rotateAngle;
+       /// clip image
+       bool clip;
+       /// draft mode
+       bool draft;
+       /// what to do with zipped files
+       bool noUnzip;
+       /// The bounding box with "xLB yLB yRT yRT ", divided by a space!
+       string bb;
+       /// Type of rescaling
+       sizeType size_type;
+       /// three possible values for rescaling (latex)
+       LyXLength width;
+       ///
+       LyXLength height;
+       ///
+       int scale;
+       /// Keep the ratio between height and width when resizing.
+       bool keepAspectRatio;
+       /// any userdefined special command
+       string special;
+       /// How to display the image inside lyx
+       DisplayType display;
+       /// Typ of the LyXView, same as for latex
+       sizeType lyxsize_type;
+       /// the size for the view inside lyx
+       LyXLength lyxwidth;
+       ///
+       LyXLength lyxheight;
+       /// Typ of rescaling the Screen inside lyx
+       int lyxscale;
+       ///
+       InsetGraphicsParams();
+       ///
+       InsetGraphicsParams(InsetGraphicsParams const &);
+       ///
+       InsetGraphicsParams & operator=(InsetGraphicsParams const &);
+       /// Save the parameters in the LyX format stream.
+       void Write(std::ostream & os) const;
+       /// If the token belongs to our parameters, read it.
+       bool Read(LyXLex & lex, string const & token);
+       /// convert 
+  // Only a subset of InsetGraphicsParams is needed for display purposes.
+  // This function also interrogates lyxrc to ascertain whether
+  // to display or not.
+       grfx::GParams asGParams(string const & filepath) 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 &);
 
 #endif