lyx_mirror/src/insets/InsetGraphicsParams.h
2013-05-23 22:12:29 -07:00

103 lines
2.5 KiB
C++

// -*- C++ -*-
/**
* \file InsetGraphicsParams.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Baruch Even
* \author Herbert Voß
*
* Full author contact details are available in file CREDITS.
*/
#ifndef INSETGRAPHICSPARAMS_H
#define INSETGRAPHICSPARAMS_H
#include "Length.h"
#include "support/FileName.h"
#include <string>
namespace lyx {
namespace graphics { class Params; }
class Lexer;
class Buffer;
/// 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;
/// If to display the image inside LyX
bool display;
/// Scaling for output (LaTeX)
std::string scale;
/// sizes for output (LaTeX)
Length width;
///
Length height;
/// Keep the ratio between height and width when resizing.
bool keepAspectRatio;
/// draft mode
bool draft;
/// what to do with zipped files
bool noUnzip;
/// scale image before rotating
bool scaleBeforeRotation;
/// 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;
/// any userdefined special command
std::string special;
///
InsetGraphicsParams();
///
InsetGraphicsParams(InsetGraphicsParams const &);
///
void operator=(InsetGraphicsParams const &);
/// Save the parameters in the LyX format stream.
/// Buffer is needed to figure out if a figure is embedded.
void Write(std::ostream & os, Buffer const & buf) const;
/// If the token belongs to our parameters, read it.
bool Read(Lexer & 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;
// FIXME UNICODE. Write functions need to use odostream instead of ostream firstly.
/// Identification of the graphics template. No template equals empty string.
std::string groupId;
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);
};
///
bool operator==(InsetGraphicsParams const &, InsetGraphicsParams const &);
///
bool operator!=(InsetGraphicsParams const &, InsetGraphicsParams const &);
} // namespace lyx
#endif