X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FinsetgraphicsParams.h;h=8b2a62842401af1d53257c5e14a5e0a67ad43282;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=027b385ae4121ad176a34a5e7786a55d20bab11c;hpb=f4bad86bdaf333294ad1309b20e3df113fc70c3a;p=lyx.git diff --git a/src/insets/insetgraphicsParams.h b/src/insets/insetgraphicsParams.h index 027b385ae4..8b2a628424 100644 --- a/src/insets/insetgraphicsParams.h +++ b/src/insets/insetgraphicsParams.h @@ -1,126 +1,97 @@ // -*- 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 -#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